【问题标题】:GraphQL-Java sending HTTP headers to REST endpointsGraphQL-Java 将 HTTP 标头发送到 REST 端点
【发布时间】:2018-02-19 21:38:43
【问题描述】:

我需要一种方法来从我的 grapqh-java impl 向我的其余端点发送用于身份验证和授权的 http 标头。我正在 GraphQL 服务层进行身份验证和授权,并且成功。现在我需要将相同的标头传递给我所有的其余端点。有没有办法我可以做到这一点。 Grapqhl - 弹簧靴 休息端点 - Dropwizard

【问题讨论】:

    标签: java rest spring-boot dropwizard graphql-java


    【解决方案1】:

    可能只是在执行查询时将所需的用户特定数据附加到 GraphQL 上下文中,例如:

    graphQL.execute(queryString, context);
    

    context 可以是任何对象,包括令牌、cookie、会话数据、HttpServletRequest

    然后,使用它从您的 DataFetchers(又名解析器)发送正确的标头:

    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);
    }
    

    最好在一个地方通过组合、继承或 AOP 样式执行此标头准备逻辑。

    【讨论】:

      猜你喜欢
      • 2017-03-10
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      • 2016-05-20
      相关资源
      最近更新 更多