首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WSO2EI -向外SOAP调用在主机名验证中失败

WSO2EI -向外SOAP调用在主机名验证中失败
EN

Stack Overflow用户
提问于 2020-03-13 19:04:47
回答 2查看 393关注 0票数 2

我的设置

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

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

我没有在WSO2EI和外部服务器之间设置任何共同的地址/密钥等。

我在做什么

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

The Issue

客户(邮递员)的电话-> WSO2EI -> OUT_SIDE_SOAP_END_POINT_1

鉴于

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

然而,客户端(邮递员)的直接呼叫-> OUT_SIDE_SOAP_END_POINT_2起作用。

异常堆栈

代码语言:javascript
复制
[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)

我做了什么,他们是如何让

基于integrator.sh的

  1. 设置系统PropertyignoreHostnameVerification

-Dorg.wso2.ignoreHostnameVerification=true相同异常

基于integrator.sh的

  1. 设置系统PropertyhostnameVerifier & disableHostnameVerification

代码语言:javascript
复制
-Dhttpclient.hostnameVerifier=AllowAll \
-Dorg.opensaml.httpclient.https.disableHostnameVerification=true \

这也不起作用。

由于从pos到OUT_SIDE_SOAP_END_POINT_2的直接调用是有效的,我认为OUT_SIDE_SOAP_END_POINT_2是打开的,我不应该对我的WSO2EI实例执行任何设置。

任何想法和建议都会受到高度赞赏。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-17 01:31:40

下面的组合成功了。这允许Apache客户端接管SAML。但是,我必须将证书添加到客户端信任存储中。

代码语言:javascript
复制
-Dorg.wso2.ignoreHostnameVerification=true \
-Dorg.opensaml.httpclient.https.disableHostnameVerification=true \

这解决了这个特殊的问题。

票数 1
EN

Stack Overflow用户

发布于 2020-03-14 14:13:07

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

你能试一下这个问题中提出的解决办法吗?

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

中移除

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60675971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档