[ 
https://issues.apache.org/jira/browse/CXF-3781?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Colm O hEigeartaigh resolved CXF-3781.
--------------------------------------
    Resolution: Cannot Reproduce

> Problems occuring when dynamic creation of client with wsdl in https
> --------------------------------------------------------------------
>
>                 Key: CXF-3781
>                 URL: https://issues.apache.org/jira/browse/CXF-3781
>             Project: CXF
>          Issue Type: Bug
>          Components: Transports
>    Affects Versions: 2.4.2
>         Environment: Spring, JBoss, Apache CXF 2.4.2, Windows XP
>            Reporter: Guillaume JOUANJAN
>            Priority: Major
>
> Hello ,
> First of all , sorry for my english , i'm a french developer.
> My goal is to call dynamically web services method using a WSDL (the only 
> information i have + name of methods)
> I've got a problem with the following code :
> String urlWsdl = 
> "https://10.33.30.138:8443/eLBG-Server/WS/LogbookWS.LogbookWSHttpSoap12Endpoint?wsdl";;
> JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.
> newInstance();
> Client clientWS = factory.createClient(urlWsdl);
> I've got the following error :
> 10:04:22,562 ERROR [[rmm-ata]] "Servlet.service()" pour la servlet rmm-ata a 
> g´┐¢n´┐¢r´┐¢ une exception
> java.security.cert.CertificateException: No subject alternative names present
>         at sun.security.util.HostnameChecker.matchIP(Unknown Source)
>         at sun.security.util.HostnameChecker.match(Unknown Source)
>         at 
> com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkIdentity(Unknown 
> Source)
>         at 
> com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown 
> Source)
>         at 
> com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown 
> Source)
>         at 
> com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
>         at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
>         at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown 
> Source)
>         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown 
> Source)
>         at 
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown 
> Source)
>         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown 
> Source)
>         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown 
> Source)
>         at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
>         at 
> sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown 
> Source)
>         at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown 
> Source)
>         at 
> sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown 
> Source)
>         at 
> org.apache.cxf.resource.URIResolver.tryFileSystem(URIResolver.java:167)
>         at org.apache.cxf.resource.URIResolver.<init>(URIResolver.java:90)
>         at 
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.composeUrl(DynamicClientFactory.java:561)
>         at 
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:259)
>         at 
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:204)
>         at 
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:197)
>         at 
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:152)
>         at 
> com.airbus.rmm.controller.ManualController.send(ManualController.java:174)
> I have specified a http conduit in spring configuration file but it seems 
> that information inside is not managed and the disableCNCheck=false is still 
> active
> my http-conduit conf :
> <http:conduit name="*.http-conduit">
>         <http:tlsClientParameters secureSocketProtocol="TLS" 
> disableCNCheck="true">
>           <sec:keyManagers keyPassword="password">
>                <sec:keyStore type="JKS" password="password"
>                     file="../classes/server.jks"/>
>           </sec:keyManagers>
>           <sec:trustManagers>
>               <sec:keyStore type="JKS" password="password"
>                    file="../classes/server.jks"/>
>           </sec:trustManagers>
>           <sec:cipherSuitesFilter>
>             <!-- these filters ensure that a ciphersuite with
>               export-suitable or null encryption is used,
>               but exclude anonymous Diffie-Hellman key change as
>               this is vulnerable to man-in-the-middle attacks -->
>             <sec:include>.*_EXPORT_.*</sec:include>
>             <sec:include>.*_EXPORT1024_.*</sec:include>
>             <sec:include>.*_WITH_DES_.*</sec:include>
>             <sec:include>.*_WITH_NULL_.*</sec:include>
>             <sec:exclude>.*_DH_anon_.*</sec:exclude>
>           </sec:cipherSuitesFilter>
>       </http:tlsClientParameters>
>       <http:authorization>
>          <sec:UserName>nandana</sec:UserName>
>          <sec:Password>password</sec:Password>
>       </http:authorization>
>       <http:client AutoRedirect="true" Connection="Keep-Alive"/>
>    </http:conduit>
>   
> I've tried also a http-conduit name ="https://10.33.30.138:8443/*"; but i've 
> got the same error.
> org.springframework.web.util.NestedServletException: Request processing 
> failed; nested exception is 
> org.apache.cxf.service.factory.ServiceConstructionException: Could not 
> resolve URL 
> "https://10.33.30.138:8443/eLBG-Server/WS/LogbookWS.LogbookWSHttpSoap12Endpoint?wsdl";.
>       
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656)
>       
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>       
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> cause mère
> org.apache.cxf.service.factory.ServiceConstructionException: Could not 
> resolve URL 
> "https://10.33.30.138:8443/eLBG-Server/WS/LogbookWS.LogbookWSHttpSoap12Endpoint?wsdl";.
>       
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.composeUrl(DynamicClientFactory.java:569)
>       
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:259)
>       
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:204)
>       
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:197)
>       
> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:152)
>       
> com.airbus.rmm.controller.ManualController.send(ManualController.java:172)
>       sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>       sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>       java.lang.reflect.Method.invoke(Unknown Source)
>       
> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
>       
> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
>       
> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
>       
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
>       
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
>       
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
>       
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>       
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> cause mère
> javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: 
> No subject alternative names present
>       com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
>       com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
> The "mother cause" seems to be the
> Could not resolve URL 
> "https://10.33.30.138:8443/eLBG-Server/WS/LogbookWS.LogbookWSHttpSoap12Endpoint?wsdl
> but with internet explorer the url is good (after accepting certificates)
> Moreover url of WSDL is calculated dynamically because end user set himself 
> via HMI the url of Web Service (i.e : 
> https://10.33.30.138:8443/eLBG-Server/WS/LogbookWS) i only add the endpoint + 
> ? wsdl



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to