How to avoid "
" (CR) in XMLSignature generated from webapp running on Tomcat 8.5 with JDK8

58 Views Asked by At

I'm experiencing a problem with java XMLSignature: when I try to generate the signature and then sign the XML file, an unwanted HTML-like Carriage Return ("
") is placed at then end of each line both in SignatureValue and X509Certificate.

Example:

zLxzCI14qHxBCXamm46Rj7nFoIDM6RTvUvUOdiQN9NkK96GzbxCJjpQVNAXduWwcMwDSVP2ouO0N
 9NSnL+TNZyU62x6Lw0N6FFbzGIzfs9HDnrw531kfpDhOBZCB85h7MGcAJmOvhy5/Gv8qgFw2DVED

I've tried to solve the problem adding the following lines to the code, based on some suggestions I found on the web:

System.setProperty("com.sun.org.apache.xml.internal.security.ignoreLineBreaks", "true");
System.setProperty("org.apache.xml.security.ignoreLineBreaks", "true");

but it didn't solve the problem.

1

There are 1 best solutions below

0
iambenna On BEST ANSWER

I finally solved the problem editing the setenv.sh script on Tomcat (at ${CATALINA_HOME}/bin/setenv.sh) appending

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

to the string of properties defined in CATALINA_OPTS.

With this setting Carriage Returns (CR) and Line Feeds (LF) were removed only inside the <Signature> tag of the resulting XML file.