2013-09-11 1 views
0

Я использовал пример, приведенный в =>http://metro.java.net/nonav/1.2/guide/Example_Applications.html#ahies , чтобы попробовать аутентификацию saml через SSL в netbeans 7.3.1 с помощью jdk 7 и glassfish 4.0. Однако, когда я запускаю мой код клиента, я получаю исключениеМыльный клиент не смог получить доступ к веб-сервису с использованием аутентификации saml через SSL.

Исключение

javax.xml.ws.WebServiceException) javax.xml.ws.WebServiceException: Не удалось получить доступ к WSDL по адресу: https: // : 8181/CalculatorApplication/CalculatorWS WSDL. Не удалось: java.security.cert.CertificateException: не найдено совпадений.

Исключение пришел в моем JSP, когда я пытаюсь создать службу:

org.me.calculator.client.CalculatorWS_Service службы = новый org.me.calculator.client.CalculatorWS_Service();

Может ли кто-нибудь, кто попробовал это или столкнулся с подобной проблемой, поможет мне в этом.

Полный трассировки стека =>

СИЛЬНЫЙ: javax.xml.ws.WebServiceException: Не удалось получить доступ к WSDL по адресу: https: //: 8181/CalculatorApplication/CalculatorWS WSDL. Не удалось: java.security.cert.CertificateException: не найдено совпадений. на com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex (RuntimeWSDLParser.java:249) на com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse (RuntimeWSDLParser.java:230) на com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse (RuntimeWSDLParser.java:193) at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse (RuntimeWSDLParser.java:162) at com. sun.xml.ws.client.WSServiceDelegate.parseWSDL (WSServiceDelegate.java:359) at com.sun.xml.ws.client.WSServiceDelegate. (WSServiceDelegate.java:321) at com.sun.xml.ws.client .WSServiceDelegate. (WSServiceDelegate.java:230) at com.sun.xml.ws.client.WSServiceDelegate. (WSServiceDelegate.java:212) at com.sun.xml.ws.client.WSServiceDelegate. (WSServiceDelegate.java: 208) at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate (ProviderImpl.java:112) at javax.xml.ws.Service. (Service.java:92) at org.me.calculator.client.CalculatorWS_Service . (CalculatorWS_Service.java:42) в org.apache.jsp.index_jsp._jspService (index_jsp.java:58) в org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase.java:111) в javax. servlet.http.HttpServlet.service (HttpServlet.java:790) at org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:411) at org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet. java: 473) at org.apache.jasper.servlet.JspServlet.service (JspServlet.java:377) at javax.servlet.http.HttpServlet.service (HttpS ervlet.java:790) at org.apache.catalina.core.StandardWrapper.service (StandardWrapper.java:1682) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:318) at org. apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:160) на org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:734) на org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:673) at com.sun.enterprise.web.WebPipeline.invoke (WebPipeline.java:99) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:174) at org. apache.catalina.connector.CoyoteAdapter.doService (CoyoteAdapter.java:357) at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:260) at com.sun.enterprise.v3.services.impl.ContainerMapper.service (ContainerMapper.java: 188) at org.glassfish.grizzly.http.server.HttpHandler.runService (HttpHandler.java:191) at org.glassfish.grizzly.http.server.HttpHandler.doHandle (HttpHandler.java:168) at org. glassfish.grizzly.http.server.HttpServerFilter.handleRead (HttpServerFilter.java:189) at org.glassfish.grizzly.filterchain.ExecutorResolver $ 9.execute (ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain .executeFilter (DefaultFilterChain.java:288) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart (DefaultFilterChai n.java:206) на org.glassfish.grizzly.filterchain.DefaultFilterChain.execute (DefaultFilterChain.java:136) на org.glassfish.grizzly.filterchain.DefaultFilterChain.process (DefaultFilterChain.java:114) в орг. glassfish.grizzly.ProcessorExecutor.execute (ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent (TCPNIOTransport.java:838) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent (AbstractIOStrategy.java:113) на org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0 (WorkerThreadIOStrategy.java:115) в org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access $ 100 (WorkerThreadIOStrategy.java:55) в орг .glassfish.grizzly.strategies.WorkerThreadIOStrategy $ WorkerThreadR unable.run (WorkerThreadIOStrategy.java:135) at org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.doWork (AbstractThreadPool.java:564) at org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.run (AbstractThreadPool. java: 544) at java.lang.Thread.run (Thread.java:724) Вызвано: javax.net.ssl.SSLHandshakeException: java.security.cert.Certificate Исключение: не найдено совпадений at sun.security. ssl.Alerts.getSSLException (Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal (SSLSocketImpl.java:1884) at sun.security.ssl.Handshaker.fatalSE (Handshaker.java:276) at sun.security.ssl.Handshaker.fatalSE (Handshaker.java:270) at sun.security.ssl.ClientHandshaker.serverCertificate (ClientHandsha ker.java:1341) at sun.security.ssl.ClientHandshaker.processMessage (ClientHandshaker.java:153) at sun.security.ssl.Handshaker.processLoop (Handshaker.java:868) at sun.security.ssl. Handshaker.process_record (Handshaker.java:804) на sun.security.ssl.SSLSocketImpl.readRecord (SSLSocketImpl.java:1016) на sun.security.ssl.SSLSocketImpl.performInitialHandshake (SSLSocketImpl.java:1312) на солнце. security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1339) at sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1323) at sun.net.www.protocol.https.HttpsClient.afterConnect (HttpsClient. java: 563) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect (AbstractDelegateHttpsURLCon nection.java:185) at sun.net.www.protocol.http.HttpURLConnection.getInputStream (HttpURLConnection.java:1300) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream (HttpsURLConnectionImpl.java:254) на java.net.URL.openStream (URL.java:1037) на com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.createReader (RuntimeWSDLParser.java:983) на com.sun.xml.ws. wsdl.parser.RuntimeWSDLParser.resolveWSDL (RuntimeWSDLParser.java:384) в com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse (RuntimeWSDLParser.java:215) ... 44 более Вызванный: Java. security.cert.CertificateException: не найдено сопоставления имен at sun.security.util.HostnameChecker.matchDNS (HostnameChecker.Java: 208) в sun.security.util.HostnameChecker.match (HostnameChecker.java:93) на sun.security.ssl.X509TrustManagerImpl.checkIdentity (X509TrustManagerImpl.java:347) на sun.security.ssl.X509TrustManagerImpl. checkTrusted (X509TrustManagerImpl.java:203) в sun.security.ssl.X509TrustManagerImpl.checkServerTrusted (X509TrustManagerImpl.java:126) в sun.security.ssl.ClientHandshaker.serverCertificate (ClientHandshaker.java:1323) ... подробнее 59

ответ

0

Существует решение, доступное здесь [1]. Похоже, это известная проблема. Я не пробовал решение, которое он предлагает, но похоже, что проблема заключается в проверке имени хоста. Он переписывает метод проверки.

 public boolean verify(String hostname, 
       javax.net.ssl.SSLSession sslSession) { 
      if (hostname.equals("localhost")) { 
       return true; 
      } 
      return false; 
     } 

[1] - http://www.mkyong.com/webservices/jax-ws/java-security-cert-certificateexception-no-name-matching-localhost-found/

 Смежные вопросы

  • Нет связанных вопросов^_^