| @@ -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("*"); | |||
| } | |||
| } | |||