Вы можете создать пользовательский объект, который внутренне содержит JWT или просто HttpServletRequest
:
public class GraphQLContext {
private HttpServletRequest httpServletRequest;
}
При выполнении запроса GraphQL
вы создаете этот объект контекста и устанавливаете его на ExecutionInput
.Большинство веб-фреймворков должно обеспечивать несколько способов легкого доступа к текущему HttpServletRequest
:
GraphQLContext context = new GraphQLContext(httpServletRequest);
ExecutionInput executionInput = ExecutionInput.newExecutionInput()
.query(query)
.context(context)
.build();
ExecutionResult result = graphQL.execute(executionInput);
Затем в сборщике данных контекст можно получить по:
@Override
public Object get(DataFetchingEnvironment env) throws Exception {
GraphQLContext context = env.getContext();
HttpServletRequest httpServletRequest = context.getHttpServletRequest();
}