我从 xmlsec 1.2.0 更新到 2.0.4,因为我正在从 Java 7 迁移到 Java 8。
现在,我遇到的问题是该方法setSignatureSpecNSprefix
已从org.apache.xml.security.utils.Constants
.
我找不到任何文档告诉我如何替换它或如何绕过它。
我已经在邮件列表和 Apache 的 JIRA 中询问过,但到目前为止还没有运气。
在我的代码中,我曾经这样做:
import org.apache.xml.security.utils.Constants;
...
protected final void sign(String signedElementID, Element signedElement)
throws XMLSecurityException {
// Setting some attributes for ID, AssertionID and ResponseID
// ...
// Here is where it blows up!!!
Constants.setSignatureSpecNSprefix("");
// The BaseURI is the URI that's used to prepend to relative URIs
String BaseURI = "http://someurl.com";
Document document = signedElement.getOwnerDocument();
// It shouldn't affect the signature,
// because we don't have any relative URLs in the document
XMLSignature sig = new XMLSignature(doc,
BaseURI,
XMLSignature.ALGO_ID_SIGNATURE_RSA,
Canonicalizer.ALGO_ID_C14N_EXCL_WITH_COMMENTS);
感谢您提供任何帮助。