You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Marco Westermann <Ma...@gmx.de> on 2016/05/17 08:16:19 UTC

SSL error with new version

Hi all,

I just updated my bundle from servicemix 4.5.2 to 6.1.1 (speak from cxf 
2.6.8 to cxf 3.4.1) After the update I get an exception calling a Soap 
Service via SSL. Before everything was working.

Below please find the code I use and the exception message.

Code:

     public WsdleddySoapPort setupClient() throws MalformedURLException, 
KeyManagementException, NoSuchAlgorithmException {
         log.info("setup eddy service");

         URL url = new URL(wsdlUrl);

         log.info("wsdl url: " + wsdlUrl);

         handleUserAndPassword();
         handleDefaultHostnameVerifier();

         Wsdleddy wsdleddy = new Wsdleddy(url);

         WsdleddySoapPort wsdleddySoap = wsdleddy.getWsdleddySoap();
         HTTPConduit httpConduit = (HTTPConduit) 
ClientProxy.getClient(wsdleddySoap).getConduit();
         TLSClientParameters tlsCP = new TLSClientParameters();
         tlsCP.setDisableCNCheck(true);
         httpConduit.setTlsClientParameters(tlsCP);

         return wsdleddySoap;

     }

     private void handleDefaultHostnameVerifier() {
         log.info("override hostename verifier");

         HttpsURLConnection.setDefaultHostnameVerifier(new 
HostnameVerifier() {
             @Override
             public boolean verify(String s, SSLSession sslSession) {
                 return true;
             }
         });
     }

     private void handleUserAndPassword() {
         log.info("setup password and username");
         Authenticator.setDefault(new Authenticator() {
             @Override
             protected PasswordAuthentication getPasswordAuthentication() {
                 return new PasswordAuthentication(eddyUser, 
eddyPassword.toCharArray());
             }
         });
     }



And the exception stack:

2016-05-17 10:05:07,731 | WARN  | edDocumentsTimer | 
PhaseInterceptorChain            | 92 - org.apache.cxf.cxf-core - 3.1.4 
| Interceptor for 
{https://eddyserver/WSEDDY}wsdleddy#{https://eddyserver/WSEDDY}getDokumente 
has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
         at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
         at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
         at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
         at 
org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
         at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
         at com.sun.proxy.$Proxy82.getDokumente(Unknown Source)
         at 
de.intersales.qbus.eddy.service.wrapper.DocumentsService.getChangedDocuments(DocumentsService.java:35)[262:de.intersales.qbus.eddy.service.wrapper:3.0.0.SNAPSHOT]
         at 
Proxy652f951d_c4f6_48f9_99df_d06b34796042.getChangedDocuments(Unknown 
Source)
         at 
Proxyfa6e7724_57e2_4ea5_a01d_ec5dc7e36f90.getChangedDocuments(Unknown 
Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)[:1.7.0_80]
         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_80]
         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_80]
         at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_80]
         at 
org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408)[207:org.apache.camel.camel-core:2.16.2]
         at 
org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:279)[207:org.apache.camel.camel-core:2.16.2]
         at 
org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:252)[207:org.apache.camel.camel-core:2.16.2]
         at 
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:177)[207:org.apache.camel.camel-core:2.16.2]
         at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[207:org.apache.camel.camel-core:2.16.2]
         at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[207:org.apache.camel.camel-core:2.16.2]
         at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[207:org.apache.camel.camel-core:2.16.2]
         at 
org.apache.camel.processor.Pipeline.process(Pipeline.java:121)[207:org.apache.camel.camel-core:2.16.2]
         at 
org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[207:org.apache.camel.camel-core:2.16.2]
         at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[207:org.apache.camel.camel-core:2.16.2]
         at 
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:165)[207:org.apache.camel.camel-core:2.16.2]
         at 
org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:73)[207:org.apache.camel.camel-core:2.16.2]
         at java.util.TimerThread.mainLoop(Timer.java:555)[:1.7.0_80]
         at java.util.TimerThread.run(Timer.java:505)[:1.7.0_80]
Caused by: javax.net.ssl.SSLException: SSLException invoking 
https://eddyserver/wsdleddy: Received fatal alert: unexpected_message
         at 
sun.reflect.GeneratedConstructorAccessor80.newInstance(Unknown Source)
         at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.7.0_80]
         at 
java.lang.reflect.Constructor.newInstance(Constructor.java:526)[:1.7.0_80]
         at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1376)
         at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1360)
         at 
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
         at 
org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
         at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
         ... 29 more
Caused by: javax.net.ssl.SSLException: Received fatal alert: 
unexpected_message
         at 
sun.security.ssl.Alerts.getSSLException(Alerts.java:208)[:1.7.0_80]
         at 
sun.security.ssl.Alerts.getSSLException(Alerts.java:154)[:1.7.0_80]
         at 
sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1979)[:1.7.0_80]
         at 
sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1086)[:1.7.0_80]
         at 
sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)[:1.7.0_80]
         at 
sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)[:1.7.0_80]
         at 
sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)[:1.7.0_80]
         at 
sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)[:1.7.0_80]
         at 
sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)[:1.7.0_80]
         at 
sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1092)[:1.7.0_80]
         at 
sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)[:1.7.0_80]
         at 
org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:236)
         at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1319)
         at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1279)
         at 
org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.onFirstWrite(URLConnectionHTTPConduit.java:267)
         at 
org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:47)
         at 
org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69)
         at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1332)
         ... 32 more


best regards,

Marco

Re: SSL error with new version

Posted by Colm O hEigeartaigh <co...@apache.org>.
Best bet is to turn on SSL debug logging on both sides + see what's going
on: "-Djavax.net.debug=all".

Colm.

On Tue, May 17, 2016 at 9:16 AM, Marco Westermann <Ma...@gmx.de>
wrote:

> Hi all,
>
> I just updated my bundle from servicemix 4.5.2 to 6.1.1 (speak from cxf
> 2.6.8 to cxf 3.4.1) After the update I get an exception calling a Soap
> Service via SSL. Before everything was working.
>
> Below please find the code I use and the exception message.
>
> Code:
>
>     public WsdleddySoapPort setupClient() throws MalformedURLException,
> KeyManagementException, NoSuchAlgorithmException {
>         log.info("setup eddy service");
>
>         URL url = new URL(wsdlUrl);
>
>         log.info("wsdl url: " + wsdlUrl);
>
>         handleUserAndPassword();
>         handleDefaultHostnameVerifier();
>
>         Wsdleddy wsdleddy = new Wsdleddy(url);
>
>         WsdleddySoapPort wsdleddySoap = wsdleddy.getWsdleddySoap();
>         HTTPConduit httpConduit = (HTTPConduit)
> ClientProxy.getClient(wsdleddySoap).getConduit();
>         TLSClientParameters tlsCP = new TLSClientParameters();
>         tlsCP.setDisableCNCheck(true);
>         httpConduit.setTlsClientParameters(tlsCP);
>
>         return wsdleddySoap;
>
>     }
>
>     private void handleDefaultHostnameVerifier() {
>         log.info("override hostename verifier");
>
>         HttpsURLConnection.setDefaultHostnameVerifier(new
> HostnameVerifier() {
>             @Override
>             public boolean verify(String s, SSLSession sslSession) {
>                 return true;
>             }
>         });
>     }
>
>     private void handleUserAndPassword() {
>         log.info("setup password and username");
>         Authenticator.setDefault(new Authenticator() {
>             @Override
>             protected PasswordAuthentication getPasswordAuthentication() {
>                 return new PasswordAuthentication(eddyUser,
> eddyPassword.toCharArray());
>             }
>         });
>     }
>
>
>
> And the exception stack:
>
> 2016-05-17 10:05:07,731 | WARN  | edDocumentsTimer |
> PhaseInterceptorChain            | 92 - org.apache.cxf.cxf-core - 3.1.4 |
> Interceptor for {
> https://eddyserver/WSEDDY}wsdleddy#{https://eddyserver/WSEDDY}getDokumente
> has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Could not send Message.
>         at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
>         at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>         at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
>         at
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
>         at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
>         at com.sun.proxy.$Proxy82.getDokumente(Unknown Source)
>         at
> de.intersales.qbus.eddy.service.wrapper.DocumentsService.getChangedDocuments(DocumentsService.java:35)[262:de.intersales.qbus.eddy.service.wrapper:3.0.0.SNAPSHOT]
>         at
> Proxy652f951d_c4f6_48f9_99df_d06b34796042.getChangedDocuments(Unknown
> Source)
>         at
> Proxyfa6e7724_57e2_4ea5_a01d_ec5dc7e36f90.getChangedDocuments(Unknown
> Source)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)[:1.7.0_80]
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_80]
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_80]
>         at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_80]
>         at
> org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408)[207:org.apache.camel.camel-core:2.16.2]
>         at
> org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:279)[207:org.apache.camel.camel-core:2.16.2]
>         at
> org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:252)[207:org.apache.camel.camel-core:2.16.2]
>         at
> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:177)[207:org.apache.camel.camel-core:2.16.2]
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[207:org.apache.camel.camel-core:2.16.2]
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[207:org.apache.camel.camel-core:2.16.2]
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[207:org.apache.camel.camel-core:2.16.2]
>         at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:121)[207:org.apache.camel.camel-core:2.16.2]
>         at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[207:org.apache.camel.camel-core:2.16.2]
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[207:org.apache.camel.camel-core:2.16.2]
>         at
> org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:165)[207:org.apache.camel.camel-core:2.16.2]
>         at
> org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:73)[207:org.apache.camel.camel-core:2.16.2]
>         at java.util.TimerThread.mainLoop(Timer.java:555)[:1.7.0_80]
>         at java.util.TimerThread.run(Timer.java:505)[:1.7.0_80]
> Caused by: javax.net.ssl.SSLException: SSLException invoking
> https://eddyserver/wsdleddy: Received fatal alert: unexpected_message
>         at sun.reflect.GeneratedConstructorAccessor80.newInstance(Unknown
> Source)
>         at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.7.0_80]
>         at
> java.lang.reflect.Constructor.newInstance(Constructor.java:526)[:1.7.0_80]
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1376)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1360)
>         at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>         at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
>         at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>         ... 29 more
> Caused by: javax.net.ssl.SSLException: Received fatal alert:
> unexpected_message
>         at
> sun.security.ssl.Alerts.getSSLException(Alerts.java:208)[:1.7.0_80]
>         at
> sun.security.ssl.Alerts.getSSLException(Alerts.java:154)[:1.7.0_80]
>         at
> sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1979)[:1.7.0_80]
>         at
> sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1086)[:1.7.0_80]
>         at
> sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)[:1.7.0_80]
>         at
> sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)[:1.7.0_80]
>         at
> sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)[:1.7.0_80]
>         at
> sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)[:1.7.0_80]
>         at
> sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)[:1.7.0_80]
>         at
> sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1092)[:1.7.0_80]
>         at
> sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)[:1.7.0_80]
>         at
> org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:236)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1319)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1279)
>         at
> org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.onFirstWrite(URLConnectionHTTPConduit.java:267)
>         at org.apache.cxf.io
> .AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:47)
>         at org.apache.cxf.io
> .AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1332)
>         ... 32 more
>
>
> best regards,
>
> Marco
>



-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com