我们正在尝试使用API Manager(1.10)来调用已使用Authorization标头令牌的现有API(POST)。我有几件事情,包括根据题为“Pass a Custom Authorization Token to the Backend”的文章使用调解,但这似乎没有用。
我最后尝试将“Auth Type”设置为“None”,根据文档,它应该直接将API调用传递给后端(包括授权头)。这也不起作用。调用到达后端服务,但似乎丢失了Authorization标头,因此它抛出400错误(当我省略标题并使用SoapUI直接调用后端api时,我得到的错误相同)。
任何帮助将不胜感激!
答案 0 :(得分:0)
如果您想在API网关上获得授权(oauth令牌验证)以及想要将自定义授权标头传递给后端,则需要按照文档[1]中所述的设置进行操作。
如果要通过将授权类型[2]设置为“none”来禁用API网关级别的授权,并希望通过API网关将Authorization标头(自定义)从客户端传递到后端,您需要执行以下步骤。
默认情况下,API网关将丢弃“授权”标头,而不将其发送到后端[3]。要通过API网关将Authorization标头发送到后端,请取消注释以下属性,并在<wso2am-home>/repository/conf/api-manager.xml
和
<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)