WSO2EI-外部SOAP调用因主机名验证而失败

问题描述 投票:1回答:1

我的设置

我正在使用WSO2EI版本6.4.0托管我的Rest API。

我的客户-> WSO2EI->外部SOAP调用

我尚未在WSO2EI与外部服务器之间设置任何相互的身份验证/密钥等。

我在做什么

[当我的客户呼叫我(WSO2EI)时,我(WSO2EI)呼叫其他SOAP端点(不同的域),而I(WSO2EI)是这些端点的客户端。

问题

来自客户(邮递员)的呼叫-> WSO2EI-> OUT_SIDE_SOAP_END_POINT_1

whereas

来自客户端(邮递员)的另一个呼叫-> WSO2EI-> OUT_SIDE_SOAP_END_POINT_2没有。

但是,来自客户端(邮递员)的直接呼叫-> OUT_SIDE_SOAP_END_POINT_2起作用

异常堆栈

[PassThroughMessageProcessor-1]  INFO {org.apache.axis2.transport.http.HTTPSender} -  Unable to sendViaPost to url[https://vsb.nrt.unabdev.sprint.com/services/CloudService]
javax.net.ssl.SSLPeerUnverifiedException: SSL peer failed hostname validation for name: null
    at org.opensaml.ws.soap.client.http.TLSProtocolSocketFactory.verifyHostname(TLSProtocolSocketFactory.java:233)
    at org.opensaml.ws.soap.client.http.TLSProtocolSocketFactory.createSocket(TLSProtocolSocketFactory.java:194)
    at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:704)
    at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:199)
    at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:81)
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:459)
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:286)
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:442)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
    at org.apache.synapse.message.senders.blocking.BlockingMsgSender.sendReceive(BlockingMsgSender.java:493)
    at org.apache.synapse.message.senders.blocking.BlockingMsgSender.send(BlockingMsgSender.java:385)
    at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:90)
#
    at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:85)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:547)
    at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:384)
    at org.apache.synapse.endpoints.DefaultEndpoint.send(DefaultEndpoint.java:77)
    at org.apache.synapse.mediators.builtin.CallMediator.handleBlockingCall(CallMediator.java:164)
    at org.apache.synapse.mediators.builtin.CallMediator.mediate(CallMediator.java:119)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
    at org.apache.synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:104)
    at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:148)
    at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:84)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
    at org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:37)
    at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:203)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:214)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
    at org.apache.synapse.rest.Resource.process(Resource.java:358)
    at org.apache.synapse.rest.API.process(API.java:426)
    at org.apache.synapse.rest.RESTRequestHandler.apiProcess(RESTRequestHandler.java:135)
    at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:113)
    at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:71)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:303)
    at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:98)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:337)
    at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:383)
    at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

我做了什么以及他们如何表现出来

  1. integrator.sh上的设置系统属性[ignoreHostnameVerification]

-Dorg.wso2.ignoreHostnameVerification=true相同的例外

  1. integrator.sh上的设置系统属性[hostnameVerifier和disableHostnameVerification]
-Dhttpclient.hostnameVerifier=AllowAll \
-Dorg.opensaml.httpclient.https.disableHostnameVerification=true \

这也不起作用。

由于从pos tman到OUT_SIDE_SOAP_END_POINT_2的直接调用有效,所以我认为OUT_SIDE_SOAP_END_POINT_2已打开,我不必在WSO2EI实例上进行任何设置。

高度赞赏任何想法和指示。

谢谢。

ssl wso2 wso2ei opensaml
1个回答
0
投票

从您的堆栈跟踪中,您似乎正在以阻止模式使用Call中介程序。关于阻塞运输似乎已经报告了一个问题。 https://github.com/wso2/product-ei/issues/1501

您可以尝试在问题中建议的解决方法吗?

作为解决方法,我们可以禁用切换到opensaml http通过在服务器启动中设置rampart.axiom.parser.pool = false来创建客户端起来。因此,从积压中删除

© www.soinside.com 2019 - 2024. All rights reserved.