-1

I'm using WSO2 ESB to send JSON message using call mediator to Bitrix CRM. I had a look to all the posts and tutorials and I get always the same error: HTTPSender - Unable to sendViaPost to url After i switched Bitrix24 to use Nginx Push I have following problem on ESB.

TID[-1234] [EI] [2020-02-11 07:04:01,702] INFO {org.apache.axis2.transport.http.HTTPSender} - Unable to sendViaPost to url[https://xxxx.com/rest/update?id=33826] 
org.opensaml.ws.soap.client.http.TLSProtocolSocketFactory.verifyHostname(TLSProtocolSocketFactory.java:233) 
org.opensaml.ws.soap.client.http.TLSProtocolSocketFactory.createSocket(TLSProtocolSocketFactory.java:194) 
org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707) 
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361) 
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387) org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) 
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) 
org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:704)
 org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:199) 
org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:81) 
org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:459) 
org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:286) 
org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442) 
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:441) 
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:227) org.apache.axis2.client.OperationClient.execute(OperationClient.java:149) 
org.apache.synapse.message.senders.blocking.BlockingMsgSender.sendReceive(BlockingMsgSender.java:490)
 org.apache.synapse.message.senders.blocking.BlockingMsgSender.send(BlockingMsgSender.java:382) 
org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:88) 
org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:85) 
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:547) 
org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:384) 
org.apache.synapse.endpoints.HTTPEndpoint.send(HTTPEndpoint.java:85) 
org.apache.synapse.mediators.builtin.CallMediator.handleBlockingCall(CallMediator.java:164) 
org.apache.synapse.mediators.builtin.CallMediator.mediate(CallMediator.java:119) 
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108) 
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70) 
org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:37) 
org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:203) 
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108) 
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70) 
org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:169) 
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108) 
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70) 
org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:169) 
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108) 
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70) 
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158) 
org.apache.synapse.mediators.builtin.ForEachMediator.mediateSequence(ForEachMediator.java:183) 
org.apache.synapse.mediators.builtin.ForEachMediator.mediate(ForEachMediator.java:145) 
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108) 
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70) 
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158) 
org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:224) 
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:415) 
org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151) 
org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
java.lang.Thread.run(Thread.java:748)

My call mediator looks like:

 <property description="messageType JSON"
                                           name="messageType"
                                           scope="axis2"
                                           type="STRING"
                                           value="application/json"/>
                                 <call blocking="true">
                                    <endpoint>
                                       <http method="POST"
                                             statistics="enable"
                                             trace="enable"
                                             uri-template="{uri.var.RESTURL}">
                                          <suspendOnFailure>
                                             <errorCodes>400</errorCodes>
                                             <initialDuration>0</initialDuration>
                                             <progressionFactor>1.0</progressionFactor>
                                             <maximumDuration>0</maximumDuration>
                                          </suspendOnFailure>
                                       </http>
                                    </endpoint>
                                 </call>

I've tried to send same message using Postman and It worked fine. Thanks for any help.

UPDATE

Logs in admin panel are not full. I've checked manually on server and the problem is with: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

UPDATE2

Full stack:

[2020-02-11 22:18:01,953] [EI-Core]  INFO - HTTPSender Unable to sendViaPost to url[https:/xxxx.com/rest/7]
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
        at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:450)
        at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.verifyHostName(SSLProtocolSocketFactory.java:276)
        at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:186)
        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:441)
        at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:227)
        at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
        at org.apache.synapse.message.senders.blocking.BlockingMsgSender.sendReceive(BlockingMsgSender.java:490)
        at org.apache.synapse.message.senders.blocking.BlockingMsgSender.send(BlockingMsgSender.java:382)
        at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:88)
        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.HTTPEndpoint.send(HTTPEndpoint.java:85)
        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.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.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.filters.FilterMediator.mediate(FilterMediator.java:169)
        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.builtin.ForEachMediator.mediateSequence(ForEachMediator.java:183)
        at org.apache.synapse.mediators.builtin.ForEachMediator.mediate(ForEachMediator.java:145)
        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.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:224)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
        at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:415)
        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)
Community
  • 1
  • 1
sz3jdii
  • 3
  • 1
  • 4
  • Seems like you have missed out the Exception that is thrown. Can you share it as well? It seems to be a SSLPeerUnverifiedException. – Arunan Sugunakumar Feb 11 '20 at 06:57
  • @ArunanSugunakumar I've checked manually on server and it's related to: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated – sz3jdii Feb 11 '20 at 08:01
  • so the server requires mutual ssl authentication? In that case - did you have the correct client key/certificate un your keystore? – gusto2 Feb 11 '20 at 08:03
  • @gusto2 It's dev server, how to disable that verification? – sz3jdii Feb 11 '20 at 08:32
  • It's on the server side, if it's nginx, you may look for `ClientAuth` directive (as far I recall) – gusto2 Feb 11 '20 at 10:16
  • @gusto2 But if I can send a message from postman to external WS and then problem doesn't occur it's really not possible to somehow disable peer verification on WSO2 which sends message to the same WS a I send to from postman? – sz3jdii Feb 11 '20 at 12:51
  • I was asking you if mutual ssl is enabled. if it's not, maybe the service server's certificate is not trusted (it would help if you'd share the whole stacktrace). please make sure the server's certificate issuer is trusted in the truststore `client-truststore.jks` see https://stackoverflow.com/questions/12961570/sslpeerunverifiedexception-peer-not-authenticated – gusto2 Feb 11 '20 at 14:06
  • @gusto2 I've updated main post with full stack, i've also added cert like on link that you've provided and I strill have same error :( – sz3jdii Feb 11 '20 at 21:19

1 Answers1

1

There seems to be a known issue in Call mediator blocking="true" mode. Please try out the work around suggested in the issue.

As a workaround for this, we can disable switching to opensaml http client by setting rampart.axiom.parser.pool=false in a server start up.

Arunan Sugunakumar
  • 3,311
  • 3
  • 12
  • 20