wso2 api经理聚类

时间:2016-02-02 17:07:15

标签: wso2 wso2-am api-manager

我正在尝试为WSO2 api管理器设置一个群集,我正在关注https://docs.wso2.com/display/CLUSTER44x/Clustering+API+Manager+1.10.0

我正在为每个组件使用单独的VM,目前在我的设置中我能够

  1. 使用在网关中发布的发布者(在日志中可见)
  2. 发布api
  3. 从商店订阅此API并生成密钥
  4. 但是,当我尝试使用生成的密钥访问此API时,我得到以下响应

    <soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
        <faultcode xmlns:axis2ns2="http://schemas.xmlsoap.org/soap/envelope/">axis2ns2:Client</faultcode>
        <faultstring>Authentication Failure</faultstring>
        <detail>Error while accessing backend services for API key validation</detail>
    </soapenv:Fault>
    

    在网关日志中,我只能看到以下行。日志中没有进一步的细节

    TID: [-1234] [] [2016-02-02 16:55:58,288]  WARN {org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticat
    ionHandler} -  API authentication failure due to Unclassified Authentication Failure {org.wso2.carbon.apimgt.gat
    eway.handlers.security.APIAuthenticationHandler}
    

    请帮我解决此问题。

3 个答案:

答案 0 :(得分:1)

这听起来像是API的一个问题 - API管理器实际上并没有对任何内容进行身份验证&#34;除非您使用身份服务器,否则请参阅here以了解身份验证和授权之间的区别(WSO2通过Oauth执行的操作)。请尝试使用已知有效的API,例如http://petstore.swagger.io/并报告错误。

答案 1 :(得分:0)

由于许多原因,这可能发生。请查看以下一些原因

  1. 密钥管理器的公共证书未在<GATEWAY_HOME>/repository/resources/security/client-truststore.jks
  2. 中正确导入
  3. 打开网关和密钥管理器节点的api-manager.xml文件,并将<KeyValidatorClientType>更改为WSClient,如下所示(默认值为ThriftClient)。

    <KeyValidatorClientType>WSClient</KeyValidatorClientType>
    

答案 2 :(得分:0)

原因可能是节点之间配置错误造成的。首先,您可以仔细检查配置(特别是与keyvalidator相关的配置)

如果您在那里找不到任何问题,那么您可以启用调试日志并了解问题

在网关节点

中的repository / conf / log4j.properties中添加以下内容
log4j.logger.org.wso2.carbon.apimgt.gateway.handlers.security=DEBUG

在密钥管理器节点

中的repository / conf / log4j.properties中添加以下内容
log4j.logger.org.wso2.carbon.apimgt.keymgt=DEBUG

您可以通过分析日志来找到问题