Browse Source

Graphql 跨域修改3

tags/B.2.6.4_20240106_base
yk 1 year ago
parent
commit
f1102a59e3
1 changed files with 6 additions and 79 deletions
  1. +6
    -79
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/graphql/config/GraphQLConfig.java

+ 6
- 79
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/graphql/config/GraphQLConfig.java View File

@@ -1,33 +1,8 @@
package com.xueyi.system.staff.graphql.config;

import graphql.ExecutionResult;
import graphql.GraphQL;
import graphql.GraphQLContext;
import graphql.execution.instrumentation.ExecutionStrategyInstrumentationContext;
import graphql.execution.instrumentation.InstrumentationContext;
import graphql.execution.instrumentation.parameters.InstrumentationExecuteOperationParameters;
import graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters;
import graphql.execution.instrumentation.parameters.InstrumentationExecutionStrategyParameters;
import graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters;
import graphql.execution.instrumentation.parameters.InstrumentationFieldParameters;
import graphql.execution.instrumentation.parameters.InstrumentationValidationParameters;
import graphql.kickstart.autoconfigure.tools.GraphQLJavaToolsAutoConfiguration;
import graphql.kickstart.execution.instrumentation.NoOpInstrumentationProvider;
import graphql.kickstart.tools.GraphQLResolver;
import graphql.kickstart.tools.SchemaParser;
import graphql.language.Document;
import graphql.scalars.ExtendedScalars;
import graphql.schema.GraphQLSchema;
import graphql.schema.idl.RuntimeWiring;
import graphql.validation.ValidationError;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import graphql.execution.instrumentation.Instrumentation;

import java.util.List;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
* @author yk
@@ -35,58 +10,10 @@ import java.util.List;
* @date 2024-01-04 22:03
*/
@Configuration
@Import(GraphQLJavaToolsAutoConfiguration.class)
public class GraphQLConfig {

@Bean
public GraphQL graphQL(List<GraphQLResolver<?>> resolvers, List<SchemaParser> schemaParsers, GraphQLSchema graphQLSchema) {
return GraphQL.newGraphQL(graphQLSchema)
.instrumentation(new SimpleAuthInstrumentation())
.build();
}

private static class SimpleAuthInstrumentation implements Instrumentation {
Logger logger = LoggerFactory.getLogger(SimpleAuthInstrumentation.class);

@Override
public InstrumentationContext<ExecutionResult> beginExecution(InstrumentationExecutionParameters parameters) {
return null;
}

@Override
public InstrumentationContext<Document> beginParse(InstrumentationExecutionParameters parameters) {
return null;
}

@Override
public InstrumentationContext<List<ValidationError>> beginValidation(InstrumentationValidationParameters parameters) {
return null;
}

@Override
public InstrumentationContext<ExecutionResult> beginExecuteOperation(InstrumentationExecuteOperationParameters parameters) {
GraphQLContext context = parameters.getExecutionContext().getGraphQLContext();

// 从上下文中获取请求头中的token
String token = context.get("Authorization");
logger.error("token: {}", token);
return null;
}


@Override
public ExecutionStrategyInstrumentationContext beginExecutionStrategy(InstrumentationExecutionStrategyParameters parameters) {
return null;
}

@Override
public InstrumentationContext<ExecutionResult> beginField(InstrumentationFieldParameters parameters) {
return null;
}
public class GraphQLConfig implements WebMvcConfigurer {

@Override
public InstrumentationContext<Object> beginFieldFetch(InstrumentationFieldFetchParameters parameters) {
return null;
}
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**/graphql").allowedOrigins("*");
}
}

Loading…
Cancel
Save