You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by dk...@apache.org on 2011/08/01 22:52:30 UTC

svn commit: r1152928 - /webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java

Author: dkulp
Date: Mon Aug  1 20:52:30 2011
New Revision: 1152928

URL: http://svn.apache.org/viewvc?rev=1152928&view=rev
Log:
Go out of the way to set the ignoreLinebreaks flag to true in xmlsec as
it seems to be causing issues in OpenSaml (and they attempt to set it to
true as well, but they init after we do)

Modified:
    webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java

Modified: webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java?rev=1152928&r1=1152927&r2=1152928&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java (original)
+++ webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java Mon Aug  1 20:52:30 2011
@@ -19,6 +19,7 @@
 
 package org.apache.ws.security;
 
+import java.lang.reflect.Field;
 import java.security.Provider;
 import java.security.Security;
 import java.util.HashMap;
@@ -30,6 +31,7 @@ import org.apache.ws.security.action.Act
 import org.apache.ws.security.processor.Processor;
 import org.apache.ws.security.util.Loader;
 import org.apache.ws.security.util.UUIDGenerator;
+import org.apache.ws.security.util.XMLUtils;
 import org.apache.ws.security.validate.Validator;
 
 /**
@@ -354,9 +356,35 @@ public class WSSConfig {
         addJceProviders = value;
     }
     
+    private static void setXmlSecIgnoreLineBreak() {
+        //really need to make sure ignoreLineBreaks is set to
+        boolean wasSet = false;
+        try {
+            // Don't override if it was set explicitly
+            String lineBreakPropName = "org.apache.xml.security.ignoreLineBreaks";
+            if (System.getProperty(lineBreakPropName) == null) {
+                System.setProperty(lineBreakPropName, "true");
+            } else {
+                wasSet = true;
+            }
+        } catch (Throwable t) { //NOPMD
+            //ignore
+        }
+        org.apache.xml.security.Init.init();
+        if (!wasSet) {
+            try {
+                Field f = XMLUtils.class.getDeclaredField("ignoreLineBreaks");
+                f.setAccessible(true);
+                f.set(null, Boolean.TRUE);
+            } catch (Throwable t) { //NOPMD
+                //ignore
+            }
+        }
+    }
+    
     public static synchronized void init() {
         if (!staticallyInitialized) {
-            org.apache.xml.security.Init.init();
+            setXmlSecIgnoreLineBreak();
             if (addJceProviders) {
                 addJceProvider("XMLDSig", "org.jcp.xml.dsig.internal.dom.XMLDSigRI");
                 addJceProvider("BC", "org.bouncycastle.jce.provider.BouncyCastleProvider");