2016-10-25 44 views
0

我的要求是向外部站點發出安全的Web請求調用並處理返回的消息。這個外部網站需要進行基本認證。我通過屬性「代理授權」在我的代理服務中傳遞憑證,如https://docs.wso2.com/display/ESB490/Enabling+HTTP+Basic+Authentication+through+a+Proxy+Server中所建議的。如何在WSO2中調用HTTPS ESB

本文檔還建議在axis2.xml中配置http.proxyHost/http.proxyPort。但是,我沒有代理服務器。我應該離開這個配置嗎?當我將http.proxyHost/http.proxyPort配置爲localhost:8080的建議時,我還在日誌文件中看到以下異常。所以我想知道,如果我正確地配置了ESB的安全的Web服務調用?非常感謝您提供任何幫助。

TID: [-1234] [] [2016-10-24 13:08:17,471] WARN {org.apache.synapse.FaultHandler} - ERROR_CODE : 0 {org.apache.synapse.FaultHandler} 
TID: [-1234] [] [2016-10-24 13:08:17,471] WARN {org.apache.synapse.FaultHandler} - ERROR_MESSAGE : Cache-Control:private,Content-Length:58,Content-Type:text/html,Date:Mon, 24 Oct 2016 18:09:37 GMT,WWW-Authenticate:BASIC Realm=hostname,X-Frame-Options:SAMEORIGIN,<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body/></soapenv:Envelope> Unexpected error sending message back {org.apache.synapse.FaultHandler} 
TID: [-1234] [] [2016-10-24 13:08:17,471] WARN {org.apache.synapse.FaultHandler} - ERROR_DETAIL : org.apache.synapse.SynapseException: Cache-Control:private,Content-Length:58,Content-Type:text/html,Date:Mon, 24 Oct 2016 18:09:37 GMT,WWW-Authenticate:BASIC Realm=hostname,X-Frame-Options:SAMEORIGIN,<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body/></soapenv:Envelope> Unexpected error sending message back 
at org.apache.synapse.core.axis2.Axis2Sender.handleException(Axis2Sender.java:257) 
at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:225) 
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:531) 
at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:118) 
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:97) 
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59) 
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158) 
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:337) 
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:554) 
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:188) 
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:261) 
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
Caused by: org.apache.axis2.AxisFault: Transport out has not been set 
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:432) 
at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:222) 
... 14 more 
{org.apache.synapse.FaultHandler} 

回答

3

由於WSO2 ESB是不是就不需要設置代理授權header.You可以使用頭調解員設置授權頭中的代理服務如下防火牆後面。 <header name="Authorization" expression="fn:concat('Basic ',base64Encode('<username>:<password>'))" scope="transport"/>。 詳情請參閱documentationhere

+0

非常感謝!有用。 –