I need a way to send http headers for authentication and authorization to my rest endpoints from my grapqh-java impl. I'm doing authentication and authorization at GraphQL service layer and it is successful. Now I need to pass the same headers to all my rest endpoints. Is there a way I could do this. Grapqhl - Spring Boot Rest endpoints - Dropwizard
Maybe just attach the needed user-specific data to the GraphQL context when executing the query, e.g:
graphQL.execute(queryString, context);
Where context
could be any object, containing tokens, cookies, session data, HttpServletRequest
etc
Then, use it to send the correct headers from your DataFetcher
s (a.k.a. resolvers):
public Object get(DataFetchingEnvironment environment) {
Map<String, Object> context = environment.getContext();
//get tokens, session data or whatever you need from the context to create the headers
List headers = ...;
return callRestWithHeaders("/rest/example", headers);
}
Preferably, do this header preparation logic in one place, via composition, inheritance or maybe in AOP style.