簡體   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