WSO2 API Manager使用授权承载令牌调用现有API时出现问题

时间:2016-03-04 07:13:34

标签: wso2 authorization wso2-am bearer-token

我们正在尝试使用API​​ Manager(1.10)来调用已使用Authorization标头令牌的现有API(POST)。我有几件事情,包括根据题为“Pass a Custom Authorization Token to the Backend”的文章使用调解,但这似乎没有用。

我最后尝试将“Auth Type”设置为“None”,根据文档,它应该直接将API调用传递给后端(包括授权头)。这也不起作用。调用到达后端服务,但似乎丢失了Authorization标头,因此它抛出400错误(当我省略标题并使用SoapUI直接调用后端api时,我得到的错误相同)。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

  1. 如果您想在API网关上获得授权(oauth令牌验证)以及想要将自定义授权标头传递给后端,则需要按照文档[1]中所述的设置进行操作。

  2. 如果要通过将授权类型[2]设置为“none”来禁用API网关级别的授权,并希望通过API网关将Authorization标头(自定义)从客户端传递到后端,您需要执行以下步骤。

  3. 默认情况下,API网关将丢弃“授权”标头,而不将其发送到后端[3]。要通过API网关将Authorization标头发送到后端,请取消注释以下属性,并在<wso2am-home>/repository/conf/api-manager.xml

    中将其值设置为“false”
    <RemoveOAuthHeadersFromOutMessage>false</RemoveOAuthHeadersFromOutMessage>
    

    [1] https://docs.wso2.com/display/AM1100/Pass+a+Custom+Authorization+Token+to+the+Backend
    [2] https://docs.wso2.com/display/AM1100/Key+Concepts#KeyConcepts-HTTPmethods
    [3] https://docs.wso2.com/display/AM1100/FAQ#FAQ-HowcanIremovetheauthenticationheadersfromthemessagegoingoutoftheAPIGatewaytothebackend

答案 1 :(得分:0)

如果您按照here的说明进行操作,则应该有效。

我已经为几个项目实现了这个,我可以证明它确实有效。

您可以通过配置log4j.properties打开有线日志,检查有线日志,看看会发生什么。