繁体   English   中英

wso2 API管理器集群

[英]wso2 api manager clustering

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

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

  1. 使用在网关中发布的发布者发布一个api(在日志中可见)
  2. 从商店订阅此API并生成密钥

但是,当我尝试使用生成的密钥访问此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}

请帮助我解决此问题。

这听起来像是您的API的问题-除非您使用的是身份服务器,否则API Manager实际上不会“对任何内容进行身份验证”,请参见此处了解身份验证和授权之间的区别(WSO2通过Oauth所做的事情)。 请尝试一个已知可以正常工作的API,例如http://petstore.swagger.io/并报告错误。

发生这种情况的原因可能很多。 请检查以下一些原因

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

     <KeyValidatorClientType>WSClient</KeyValidatorClientType> 

其原因可能是节点之间配置错误的结果。 首先,您可以仔细检查配置(特别是与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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM