如何避免“ XMLSignature 中的 (CR) 是从使用 JDK8 在 Tomcat 8.5 上运行的 Web 应用程序生成的

问题描述 投票:0回答:1
我在使用 java XMLSignature 时遇到问题:当我尝试生成签名然后对 XML 文件进行签名时,会出现一个

unwanted 类似 HTML 的回车符 (" ") 放置在 SignatureValue 和 X509Certificate 中每行的末尾。

示例:

zLxzCI14qHxBCXamm46Rj7nFoIDM6RTvUvUOdiQN9NkK96GzbxCJjpQVNAXduWwcMwDSVP2ouO0N
 9NSnL+TNZyU62x6Lw0N6FFbzGIzfs9HDnrw531kfpDhOBZCB85h7MGcAJmOvhy5/Gv8qgFw2DVED


我尝试根据我在网上找到的一些建议在代码中添加以下几行来解决问题:

System.setProperty("com.sun.org.apache.xml.internal.security.ignoreLineBreaks", "true"); System.setProperty("org.apache.xml.security.ignoreLineBreaks", "true");
但这并没有解决问题。

java-8 x509certificate tomcat8 carriage-return xml-signature
1个回答
0
投票
我终于解决了在 Tomcat 上编辑

setenv.sh 脚本(位于 ${CATALINA_HOME}/bin/setenv.sh

)附加
的问题

-Dcom.sun.org.apache.xml.internal.security.ignoreLineBreaks=true


CATALINA_OPTS

中定义的属性字符串。

使用此设置,回车符 (CR)

和换行符 (LF) 仅在生成的 XML 文件的 <Signature>

 标记内被删除。

© www.soinside.com 2019 - 2024. All rights reserved.