使用WSO2 API Manager

时间:2016-11-10 09:21:04

标签: wso2-am

有没有办法将授权持有者放入URL请求?访问我的API的curl命令是:

  

curl -X GET --header'Eccept:application / xml'--header'授权:Bearer ebcd41ac-3466-3262-8c8e-3c73c987dbde''https://gateway.api.cloud.wso2.com:443/t/jab7180/prod/1.0.0/inquire/promos/IBM'

但如果我使用https://gateway.api.cloud.wso2.com:443/t/jab7180/prod/1.0.0/inquire/promos/IBM在浏览器中使用请求网址,则会收到以下错误消息:

Code = 900902
Message: Missing credentials
Description: Required OAuth credentials not provided. Make sure your API invocation call has a header: "Authorization: Bearer ACCESS_TOKEN"

我希望你可以帮助我,因为我想通过浏览器而不是curl命令访问我的API。谢谢。

2 个答案:

答案 0 :(得分:0)

API Manager使用org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler使用OAuth身份验证令牌对网关的请求进行身份验证。要更改此行为,您有三个选项:

  1. 从网关上的API定义中删除身份验证处理程序(或从速度模板中删除,以应用于所有API发布)。
  2. 创建您自己的身份验证处理程序,并替换API定义和/或速度模板中的默认身份验证处理程序。请参阅:https://docs.wso2.com/display/AM200/Writing+Custom+Handlers
  3. 创建一个新的处理程序,该处理程序接受授权查询字符串参数,并将值添加到传入请求的标头中。在您的API的处理程序工作流程中,在认证处理程序之前添加此处理程序
  4. 话虽如此,你为什么要这样做?有许多GUI可以使发送HTTP请求与使用浏览器(https://www.getpostman.com/)一样直接,所以除非你有充分的理由改变这种行为,否则你可能不应该这样做。

答案 1 :(得分:0)

如果您不需要使用访问令牌保护您的api并在未经授权的情况下访问它,您可以在创建或更新时在api发布者的“管理”选项卡中指定“无”作为Get api资源的授权API。