【问题标题】:unable to find valid certification path to requested target wso2无法找到到请求的目标 wso2 的有效证书路径
【发布时间】:2016-05-19 05:53:39
【问题描述】:

我正在运行 wso2 saml SSO 示例(travelocity.com),它与 saml 一起运行良好。但是当我在 wso2is 中配置 oAuth 并在 travelocity 属性文件中设置 EnableSAML2Grant=true 时,出现以下错误

org.wso2.carbon.identity.sso.agent.exception.SSOAgentException:错误 在使用 SAML2 授权类型检索 OAuth2 访问令牌时 org.wso2.carbon.identity.sso.agent.oauth2.SAML2GrantAccessTokenRequestor.getAccessToken(SAML2GrantAccessTokenRequestor.java:63) 在 org.wso2.carbon.identity.sso.agent.SSOAgentFilter.doFilter(SSOAgentFilter.java:135) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) 在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) 在 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.lang.Thread.run(Thread.java:745) 引起: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 在以下位置找到请求目标的有效认证路径 sun.security.ssl.Alerts.getSSLException(Alerts.java:192) 在 sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1916) 在 sun.security.ssl.Handshaker.fatalSE(Handshaker.java:279) 在 sun.security.ssl.Handshaker.fatalSE(Handshaker.java:273) 在 sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1472) 在 sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:213) 在 sun.security.ssl.Handshaker.processLoop(Handshaker.java:913) 在 sun.security.ssl.Handshaker.process_record(Handshaker.java:849) 在 sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1035) 在 sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1344) 在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371) 在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355) 在 sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559) 在 sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) 在 sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1093) 在 sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) 在 org.wso2.carbon.identity.sso.agent.oauth2.SAML2GrantAccessTokenRequestor.executePost(SAML2GrantAccessTokenRequestor.java:88) 在 org.wso2.carbon.identity.sso.agent.oauth2.SAML2GrantAccessTokenRequestor.getAccessToken(SAML2GrantAccessTokenRequestor.java:50) ... 18 更多原因:sun.security.validator.ValidatorException: PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 在以下位置找到请求目标的有效认证路径 sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385) 在 sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) 在 sun.security.validator.Validator.validate(Validator.java:260) 在 sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326) 在 sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231) 在 sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126) 在 sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1454) ... 31 更多原因: sun.security.provider.certpath.SunCertPathBuilderException:无法 在以下位置找到请求目标的有效认证路径 sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196) 在 java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268) 在 sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380) ... 37 更多

【问题讨论】:

    标签: security oauth-2.0 wso2 saml


    【解决方案1】:

    根据文档[1],您必须设置 EnableOAuth2SAML2Grant=true 才能在 travelocity 属性文件中配置 OAuth。

    [1]https://docs.wso2.com/display/IS510/SAML2+Bearer+Assertion+Profile+for+OAuth+2.0+with+WSO2+Travelocity

    谢谢。

    【讨论】:

      猜你喜欢
      • 2020-11-11
      • 2011-10-18
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多