0

我正在评估 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>

我错过了什么?

4

2 回答 2

0

从发布者应用程序创建 API 时,最后一个输入字段部分是输入“API 资源”详细信息。您可以为每个 url 模式的每个资源动词设置不同的三种授权级别:

1.None-调用特定API不需要授权标头

2.Application-Application Access Token[应用商店中每个应用生成的访问令牌]调用API所需

3.应用程序用户-调用API所需的最终用户访问令牌[可以通过使用在商店中每个应用程序生成的消费者密钥/秘密从loginAPI生成]

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

根据您给定的信息,您已尝试使用带有应用程序访问令牌的 API。您是否可以通过转到 Publisher app->Browse the related API->Navigate to edit API page 仔细检查您是否已将访问资源 url 方法的身份验证方案设置为“应用程序”。?

谢谢;

/拉拉吉

于 2013-01-10T11:42:53.263 回答
0

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

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

于 2013-06-10T04:47:05.960 回答