【问题标题】:wso2, Configure the header to carry the Bearer token, not workingwso2,配置header携带Bearer token,不起作用
【发布时间】:2020-02-18 23:29:34
【问题描述】:

我正在使用 wso2am-2.6.0 版本,我想传递一个与 wso2 提供的 wso2 oauth 令牌不同的现有不记名令牌。

我按照link:中给出的说明进行操作

  • 为每个 API 配置标头
  • 为整个组织配置标题

他们都没有解决我的问题。

提供现有的不记名令牌,按照上面链接中提到的步骤,以下是我得到的响应:

{
  "fault": {
    "code": 900901,
    "message": "Invalid Credentials",
    "description": "Access failure for API: /embargoQA/v1, version: v1 status: (900901) - Invalid Credentials. Make sure you have given the correct access token"
  }
}

任何帮助将不胜感激。

【问题讨论】:

  • 您能举个例子进一步解释一下吗?
  • 简单我在 API Publisher 上发布了一个现有的 Rest API,并在管理选项卡配置上添加了一个授权标头,作为 wso2 文档中解释的令牌,然后转到 API 商店、相应的 API 和管理控制台并提供我现有的不记名令牌和带有租户 ID 的查询参数,然后单击执行。我收到上述响应为无效凭据。如果我必须提供任何其他信息,请告诉我。
  • 请在repository/deployment/server/synapse-configs/default/api附上API的突触文件。
  • 嗨,蜜蜂,如果您需要更多详细信息,请告诉我。

标签: wso2 wso2-am


【解决方案1】:

由于某种原因,API 似乎没有使用新标头进行更新。如果它已正确更新,您应该在 CORS 处理程序下看到它。

  <handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
     <property name="apiImplementationType" value="ENDPOINT"/>
     <property name="AuthorizationHeader" value="Token"/>
  </handler>

【讨论】:

  • 嗨,蜜蜂,感谢您的回复。从现有的 Rest API 创建了一个新的 API。现在 API 使用新标头更新,如上所述。请在这里找到相同的drive.google.com/open?id=1YiQWinkdpiuq0Cb1lwri9v_DWos2LDCO,当我使用现有的不记名令牌在 API Store 上执行此 API 时,TypeError:Failed to Fetch, code:200 是响应。请进一步帮助我。
  • 1) 你可以试试 curl 吗? 2)您是否将Token 添加到CORS 标头?
  • 尝试使用 curl,{"fault":{"code":900901,"message":"Invalid Credentials","description":"API 访问失败: 状态:(900901) - 无效的凭证。确保您提供了正确的访问令牌“}} 这里的问题是当我们尝试使用 curl 时,承载令牌应作为 Authorization: 或 Token: 传递
  • 无论如何都尝试了这两种方式。上面的响应是 Token:。以下是授权:,响应是 {"fault":{"code":900902,"message":"Missing Credentials","description":"未提供必需的 OAuth 凭据。确保您的 API 调用call 有一个标题:\“授权:承载 ACCESS_TOKEN\”“}} 请进一步建议,提前谢谢。是的,向 CORS 标头添加了令牌。
  • 以上两个都不正确。应该是Token: Bearer &lt;access_token&gt;
【解决方案2】:

这个问题是通过做一些改变来解决的,

在 api-manager.xml 上的一个,取消注释 RemoveOAuthHeadersFromOutMessage 标记并在 OAuthConfigurations 下使其为“false”,如下所示,

<OAuthConfigurations>
        <!-- Remove OAuth headers from outgoing message. -->
        <RemoveOAuthHeadersFromOutMessage>false</RemoveOAuthHeadersFromOutMessage>
        ..........
</OAuthConfigurations>

第二个是在发布 API 时的管理选项卡上,在相应端点的资源部分下,您选择“无”选项而不是选择“应用程序/应用程序用户”

使用此解决方案,我们无需在发布 API 时添加授权标头,作为管理选项卡上的令牌。在 API Store 上尝试进行这些更改后,您可以在为其指定的字段上提供您的 Bearer 令牌,并提供所需的输入点击执行它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-11
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2019-05-31
    • 1970-01-01
    相关资源
    最近更新 更多