从WSO2 RESTClient获取不正确的访问令牌类型

时间:2013-01-09 17:12:55

标签: wso2 wso2-am

我正在评估WSO2 API Manager 1.3.0并将其部署在Linux服务器上。 我已经发布了一个API,然后作为客户端用户,我订阅了该API 并为其生成生产密钥。

 Access Token       EnhC3kxAf6hL68pqMSr2gYwK950a
 Consumer Key       TyEqcYa4hytVPhpiQqRWVNiVIZ0a
 Consumer Secret    7VC9z347ZIzf_K_15rjsGyXcRIYa

当我尝试通过RESTClient访问API并按照http://docs.wso2.org/wiki/display/AM130/Subscribing+to+an+APIhttp://docs.wso2.org/wiki/display/AM120/Testing+an+API传递访问令牌进行身份验证时:

Authorization:Bearer EnhC3kxAf6hL68pqMSr2gYwK950a

我收到错误

<ams:fault xmlns:ams="http://wso2.org/apimanager/security">
  <ams:code>900905</ams:code>
  <ams:message>Incorrect Access Token Type is provided</ams:message>
  <ams:description>Access failure for API: /test, version: 1 with key: EnhC3kxAf6hL68pqMSr2gYwK950a</ams:description>
</ams:fault>

我错过了什么?

2 个答案:

答案 0 :(得分:0)

从发布商应用创建API时,最后一个输入字段部分是输入'API资源'详细信息。您可以为每个网址模式的每个资源谓词设置不同的三种类型的授权级别;

1.None-调用特定API

不需要授权标头

2.应用程序 - 应用程序访问令牌[在Store应用程序中为每个应用程序生成的访问令牌]调用API

3.Application User -End用户访问令牌[可以通过在Store中使用生成的消费者密钥/秘密生成的每个应用程序生成的消费者密钥/秘密来生成]

如果您打算尝试调用特定的API资源URL,首先需要确保使用正确的授权方案。例如,如果您将访问API资源动词授权方案设置为“应用程序用户”并且如果您尝试使用应用程序访问令牌调用该资源谓词,则会抛出类似的错误。

根据您提供的信息,您已尝试使用带有应用程序访问令牌的API。您可以通过转到Publisher应用程序进行仔细检查 - >浏览相关API-&gt;导航到编辑API页面,您是否已将访问资源URL方法的身份验证方案设置为“应用程序”。 ?

感谢;

/ Lalaji

答案 1 :(得分:0)

我遇到过这个问题 - 生产网址配置为http://xxx.xxx.xx.xx/services/rest/entity.json/search,上下文/搜索,网址前缀为search / 1.0.0,网址格式为/ *。 - 在REST客户端上执行/search/1.0.0/abc时,我遇到了同样的错误。

将生产网址设置为http://xxx.xxx.xx.xx/services/rest并将上下文设置为/ search时,错误已修复。添加API资源时,将URL前缀设置为/search/1.0.0,将URL模式设置为/entity.json/search /*.