Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-3781

Problems occuring when dynamic creation of client with wsdl in https

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • 2.4.2
    • None
    • Transports
    • None
    • Spring, JBoss, Apache CXF 2.4.2, Windows XP

    • Unknown

    Description

      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

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              gjouanjan Guillaume JOUANJAN
              Votes:
              3 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: