如何在使用Apache XML Security的Java代码中修改XML Canonicalization方法
XML签名规范化算法修改方案
你只需要调整Canonicalizer.getInstance()传入的算法ID常量即可快速完成修改,修改后的参考代码如下:
// 该常量对应当前你需要的 http://www.w3.org/2001/10/xml-exc-c14n# 排他性XML规范化规范(无注释版本) outputStream.write(Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS).canonicalizeSubtree(doc));
补充说明
- 若你的业务场景需要保留XML中的注释内容,可以替换为
Canonicalizer.ALGO_ID_C14N_EXCL_WITH_COMMENTS常量,对应算法URI为http://www.w3.org/2001/10/xml-exc-c14n#WithComments - 若运行时提示算法不存在,可先执行Apache XML Security的初始化逻辑,该逻辑全局仅需执行一次,建议放在项目启动阶段执行:
org.apache.xml.security.Init.init();
内容的提问来源于stack exchange,提问作者Prothy
相关产品推荐
相关产品推荐

