【发布时间】:2014-04-07 09:54:32
【问题描述】:
我正在尝试使用 Java 解析带有签名的 SAML 响应。我得到一个异常
javax.xml.crypto.URIReferenceException:
com.sun.org.apache.xml.internal.security.utils.resolver.ResourceResolverException: Cannot
resolve element with ID SAML-
经查Java 1.7 u25版本后存在bug,参考如下
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7094155.
谁能指出我如何纠正这个错误,因为我使用的是 AWS Beanstalk(它只支持 1.7 u 25,也只支持 Linux。)
这是读取 SAML 和解析的起始代码,实际上我需要验证 SAML 以及签名。
ByteArrayInputStream bis = new ByteArrayInputStream(resp.getBytes());
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
DocumentBuilder docBuilder;
try {
docBuilder = documentBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse(bis);
Node nl = doc.getElementsByTagNameNS(XMLSignature.XMLNS,"Signature").item(0);
.....
任何帮助将不胜感激。
【问题讨论】:
标签: java amazon-web-services xml-parsing amazon-elastic-beanstalk saml-2.0