【问题标题】:org.opensaml.xml.validation.ValidationException: Apache xmlsec IdResolver could not resolve the Element for id referenceorg.opensaml.xml.validation.ValidationException:Apache xmlsec IdResolver 无法解析 id 引用的元素
【发布时间】:2014-03-26 20:32:11
【问题描述】:

我正在尝试验证 SAML 断言签名,但收到以下错误:

org.opensaml.xml.validation.ValidationException:Apache xmlsec IdResolver 无法解析 id 引用的元素:P_ZoIp8bCaGCKuf8Tqy1EckkF4_ 在 org.opensaml.security.SAMLSignatureProfileValidator.validateReferenceURI(SAMLSignatureProfileValidator.java:153) 在 org.opensaml.security.SAMLSignatureProfileValidator.validateSignatureImpl(SAMLSignatureProfileValidator.java:84) 在 org.opensaml.security.SAMLSignatureProfileValidator.validate(SAMLSignatureProfileValidator.java:56) 在 com.test.AssertionValidator(AssertionValidator.java:341) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:646) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 在 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:501) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) 在 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(未知来源)“

我正在使用 OpenSAML 2.6.1、XMLSec 1.5.6 和 JDK7u51。 有什么办法可以摆脱这个错误?

【问题讨论】:

    标签: opensaml xmlsec


    【解决方案1】:

    使用 OpenSAML 解密和验证签名时的常见问题。要解决此问题,您需要在解密之前将解密器中的 RootInNewDocument 属性设置为 true。像这样

    decrypter.setRootInNewDocument(true);
    

    参考。 http://mylifewithjava.blogspot.no/2014/05/exception-apache-xmlsec-idresolver.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 2017-03-22
      • 2018-05-30
      • 2023-03-13
      相关资源
      最近更新 更多