【问题标题】:WSO2 API Manager TryIt feature null keyWSO2 API Manager TryIt 功能空键
【发布时间】:2014-09-16 13:05:15
【问题描述】:

我正在使用 WSO2 API 管理器,并且我添加了一个在 WSO2 ESB 中创建的 API,当我尝试使用 TryIt 功能时,我在控制台日志中收到以下错误。

[2014-09-16 13:59:26,614] 错误 - APIAuthenticationHandler API 身份验证失败 org.wso2.carbon.apimgt.gateway.handlers.security.APISecurityException:API 访问失败:/Sub,版本:v1.0.0,密钥:null 在 org.wso2.carbon.apimgt.gateway.handlers.security.oauth.OAuthAuthenticator.authenticate(OAuthAuthenticator.java:157) 在 org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler.handleRequest(APIAuthenticationHandler.java:92) 在 org.apache.synapse.rest.API.process(API.java:285) 在 org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:83) 在 org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:64) 在 org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) 在 org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83) 在 org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 在 org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:344) 在 org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:168) 在 org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(Unknown Source)

我正在尝试发送 GET 请求,但该 API 没有参数,并且在我已输入的授权字段中

Bearer XXXACCESS+TOKEN+GOES+HEREXXXX 

从高级 REST 客户端或商店中的 REST 客户端对此进行测试时,它可以工作。我已经更改了各种文件(授权、登录、令牌、撤销)中的端口号以匹配我的端口偏移量,我还在 api-manager.xml 中配置了我的 API 存储地址。

【问题讨论】:

  • 在 TryIt 页面上,您是将标题添加为“原始”还是“表单”?
  • 你用的是什么版本?
  • Dakshika 我使用的是 1.7.0 版和 Colinr 我认为它的形式
  • 使用高级 REST 客户端时,它适用于 Raw 和 Form

标签: wso2 wso2esb wso2-am wso2developerstudio


【解决方案1】:

当您将该特定资源添加到您的 API 时,请同时选择“OPTIONS”动词。否则会报这个错误。

另外,检查您的 /etc/hosts 条目是否将“localhost”定向到“127.0.0.1”而不是您机器的 IP 地址。在这种情况下,请打开

    {API-M installation DIR}/repository/conf/api-manager.xml

并且,通过添加您的 IP 地址(或主机名)适当地修改与 Swagger 相关的部分

从此,

    <!--Configuration to enable/disable sending CORS headers from the Gateway-->
    <Enabled>true</Enabled>

    <!--The value of the Access-Control-Allow-Origin header. Default values are 
        API Store addresses, which is needed for swagger to function.-->
    <Access-Control-Allow-Origin>https://localhost:9443,http://localhost:9763</Access-Control-Allow-Origin>

    <!--Configure Access-Control-Allow-Headers-->
    <Access-Control-Allow-Headers>authorization,Access-Control-Allow-Origin,Content-Type</Access-Control-Allow-Headers>

</CORSConfiguration>

为此(添加您自己的服务器 IP),

    <!--Configuration to enable/disable sending CORS headers from the Gateway-->
    <Enabled>true</Enabled>

    <!--The value of the Access-Control-Allow-Origin header. Default values are 
        API Store addresses, which is needed for swagger to function.-->
    <Access-Control-Allow-Origin>https://192.168.56.101:9443,http://192.168.56.101:9763</Access-Control-Allow-Origin>

    <!--Configure Access-Control-Allow-Headers-->
    <Access-Control-Allow-Headers>authorization,Access-Control-Allow-Origin,Content-Type</Access-Control-Allow-Headers>

</CORSConfiguration>

以上答案假设您没有向 API Manager 添加任何端口偏移量。如果您这样做了,您还应该相应地更改上述配置中的端口值(只需将该值添加到现有端口值)。

谢谢。

-查图拉

【讨论】:

  • 以上方法我都试过了,还是不行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多