xmlsec 2.0.4:无法解析方法setSignatureSpecNSprefix

时间:2019-04-25 18:41:53

标签: java weblogic xmlsec

由于我从Java 7迁移到Java 8,所以我从xmlsec 1.2.0更新到了2.0.4。

现在,我遇到的问题是方法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);

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

应该可以替换

    Constants.setSignatureSpecNSprefix("");

使用

    ElementProxy.setDefaultPrefix(Constants.SignatureSpecNS, "");

并获得相同的结果。