Author: coheigea
Date: Mon Feb 28 15:39:16 2011
New Revision: 1075383

URL: http://svn.apache.org/viewvc?rev=1075383&view=rev
Log:
[WSS-256] - Turned on BSP compliance by default, and fixed some failing tests 
and a NPE.

Modified:
    webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java
    
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecSignatureBase.java
    
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/handler/SignatureConfirmationTest.java
    
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/EncryptionTest.java
    
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureEncryptionTest.java
    
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureKeyValueTest.java
    
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureTest.java
    
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/TimestampTest.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=1075383&r1=1075382&r2=1075383&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 Feb 28 15:39:16 2011
@@ -199,7 +199,7 @@ public class WSSConfig {
         DEFAULT_VALIDATORS = java.util.Collections.unmodifiableMap(tmp);
     }
 
-    protected boolean wsiBSPCompliant = false;
+    protected boolean wsiBSPCompliant = true;
 
     /**
      * Set the timestamp precision mode. If set to <code>true</code> then use

Modified: 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecSignatureBase.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecSignatureBase.java?rev=1075383&r1=1075382&r2=1075383&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecSignatureBase.java
 (original)
+++ 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecSignatureBase.java
 Mon Feb 28 15:39:16 2011
@@ -207,7 +207,8 @@ public class WSSecSignatureBase extends 
     public List<String> getInclusivePrefixes(Element target, boolean 
excludeVisible) {
         List<String> result = new ArrayList<String>();
         Node parent = target;
-        while (!(Node.DOCUMENT_NODE == parent.getParentNode().getNodeType())) {
+        while (parent.getParentNode() != null &&
+            !(Node.DOCUMENT_NODE == parent.getParentNode().getNodeType())) {
             parent = parent.getParentNode();
             NamedNodeMap attributes = parent.getAttributes();
             for (int i = 0; i < attributes.getLength(); i++) {

Modified: 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/handler/SignatureConfirmationTest.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/handler/SignatureConfirmationTest.java?rev=1075383&r1=1075382&r2=1075383&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/handler/SignatureConfirmationTest.java
 (original)
+++ 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/handler/SignatureConfirmationTest.java
 Mon Feb 28 15:39:16 2011
@@ -274,11 +274,15 @@ public class SignatureConfirmationTest e
         }
         
         // Verify the results
-        verify(doc);
         
-        // Now turn on BSP spec compliance
+        // Turn off BSP spec compliance
         WSSecurityEngine newEngine = new WSSecurityEngine();
         WSSConfig config = WSSConfig.getNewInstance();
+        config.setWsiBSPCompliant(false);
+        newEngine.setWssConfig(config);
+        newEngine.processSecurityHeader(doc, null, callbackHandler, crypto);
+        
+        // Now turn on BSP spec compliance
         config.setWsiBSPCompliant(true);
         newEngine.setWssConfig(config);
         try {

Modified: 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/EncryptionTest.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/EncryptionTest.java?rev=1075383&r1=1075382&r2=1075383&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/EncryptionTest.java
 (original)
+++ 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/EncryptionTest.java
 Mon Feb 28 15:39:16 2011
@@ -529,11 +529,14 @@ public class EncryptionTest extends org.
             LOG.debug(outputString);
         }
         
+        // Turn off BSP compliance
         WSSecurityEngine newEngine = new WSSecurityEngine();
+        WSSConfig wssConfig = WSSConfig.getNewInstance();
+        wssConfig.setWsiBSPCompliant(false);
+        newEngine.setWssConfig(wssConfig);
         newEngine.processSecurityHeader(encryptedDoc, null, 
keystoreCallbackHandler, crypto);
         
         // Now turn on BSP compliance
-        WSSConfig wssConfig = WSSConfig.getNewInstance();
         wssConfig.setWsiBSPCompliant(true);
         newEngine.setWssConfig(wssConfig);
         try {

Modified: 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureEncryptionTest.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureEncryptionTest.java?rev=1075383&r1=1075382&r2=1075383&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureEncryptionTest.java
 (original)
+++ 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureEncryptionTest.java
 Mon Feb 28 15:39:16 2011
@@ -24,6 +24,7 @@ import org.apache.commons.logging.LogFac
 import org.apache.ws.security.WSConstants;
 import org.apache.ws.security.WSDataRef;
 import org.apache.ws.security.WSEncryptionPart;
+import org.apache.ws.security.WSSConfig;
 import org.apache.ws.security.WSSecurityEngine;
 import org.apache.ws.security.WSSecurityEngineResult;
 import org.apache.ws.security.common.KeystoreCallbackHandler;
@@ -349,7 +350,11 @@ public class SignatureEncryptionTest ext
         
         SecretKeyCallbackHandler secretKeyCallbackHandler = new 
SecretKeyCallbackHandler();
         secretKeyCallbackHandler.setOutboundSecret(key);
-        secEngine.processSecurityHeader(doc, null, secretKeyCallbackHandler, 
crypto);
+        WSSecurityEngine engine = new WSSecurityEngine();
+        WSSConfig config = WSSConfig.getNewInstance();
+        config.setWsiBSPCompliant(false);
+        engine.setWssConfig(config);
+        engine.processSecurityHeader(doc, null, secretKeyCallbackHandler, 
crypto);
         if (LOG.isDebugEnabled()) {
             String outputString = 
                 
org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(doc);

Modified: 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureKeyValueTest.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureKeyValueTest.java?rev=1075383&r1=1075382&r2=1075383&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureKeyValueTest.java
 (original)
+++ 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureKeyValueTest.java
 Mon Feb 28 15:39:16 2011
@@ -23,6 +23,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ws.security.PublicKeyPrincipal;
 import org.apache.ws.security.WSConstants;
+import org.apache.ws.security.WSSConfig;
 import org.apache.ws.security.WSSecurityEngine;
 import org.apache.ws.security.WSSecurityEngineResult;
 import org.apache.ws.security.common.SOAPUtil;
@@ -40,7 +41,6 @@ import java.util.List;
  */
 public class SignatureKeyValueTest extends org.junit.Assert {
     private static final Log LOG = 
LogFactory.getLog(SignatureKeyValueTest.class);
-    private WSSecurityEngine secEngine = new WSSecurityEngine();
     private Crypto crypto = CryptoFactory.getInstance("wss40.properties");
 
     /**
@@ -63,7 +63,13 @@ public class SignatureKeyValueTest exten
         }
         assertTrue(outputString.indexOf("RSAKeyValue") != -1);
         
-        final List<WSSecurityEngineResult> results = verify(signedDoc);
+        WSSecurityEngine secEngine = new WSSecurityEngine();
+        WSSConfig config = WSSConfig.getNewInstance();
+        config.setWsiBSPCompliant(false);
+        secEngine.setWssConfig(config);
+        final List<WSSecurityEngineResult> results = 
+            secEngine.processSecurityHeader(signedDoc, null, null, crypto);
+
         WSSecurityEngineResult actionResult = 
             WSSecurityUtil.fetchActionResult(results, WSConstants.SIGN);
         assertTrue(actionResult != null);
@@ -101,7 +107,11 @@ public class SignatureKeyValueTest exten
         assertTrue(outputString.indexOf("RSAKeyValue") != -1);
         
         try {
-            verify(signedDoc);
+            WSSecurityEngine secEngine = new WSSecurityEngine();
+            WSSConfig config = WSSConfig.getNewInstance();
+            config.setWsiBSPCompliant(false);
+            secEngine.setWssConfig(config);
+            secEngine.processSecurityHeader(signedDoc, null, null, crypto);
             fail("Failure expected on bad public key");
         } catch (Exception ex) {
             // expected
@@ -130,7 +140,13 @@ public class SignatureKeyValueTest exten
         }
         assertTrue(outputString.indexOf("DSAKeyValue") != -1);
         
-        final List<WSSecurityEngineResult> results = verify(signedDoc);
+        WSSecurityEngine secEngine = new WSSecurityEngine();
+        WSSConfig config = WSSConfig.getNewInstance();
+        config.setWsiBSPCompliant(false);
+        secEngine.setWssConfig(config);
+        final List<WSSecurityEngineResult> results = 
+            secEngine.processSecurityHeader(signedDoc, null, null, crypto);
+        
         WSSecurityEngineResult actionResult = 
             WSSecurityUtil.fetchActionResult(results, WSConstants.SIGN);
         assertTrue(actionResult != null);
@@ -142,17 +158,5 @@ public class SignatureKeyValueTest exten
             ((PublicKeyPrincipal)principal).getPublicKey();
         assertTrue(publicKey instanceof java.security.interfaces.DSAPublicKey);
     }
-
-
-    /**
-     * Verifies the soap envelope
-     * <p/>
-     * 
-     * @param env soap envelope
-     * @throws java.lang.Exception Thrown when there is a problem in 
verification
-     */
-    private List<WSSecurityEngineResult> verify(Document doc) throws Exception 
{
-        return secEngine.processSecurityHeader(doc, null, null, crypto);
-    }
     
 }

Modified: 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureTest.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureTest.java?rev=1075383&r1=1075382&r2=1075383&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureTest.java
 (original)
+++ 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureTest.java
 Mon Feb 28 15:39:16 2011
@@ -150,11 +150,14 @@ public class SignatureTest extends org.j
             LOG.debug(outputString);
         }
         
-        verify(signedDoc);
-        
-        // Now turn on BSP spec compliance
+        // Turn off BSP spec compliance
         WSSecurityEngine newEngine = new WSSecurityEngine();
         WSSConfig config = WSSConfig.getNewInstance();
+        config.setWsiBSPCompliant(false);
+        newEngine.setWssConfig(config);
+        newEngine.processSecurityHeader(doc, null, null, crypto);
+        
+        // Now turn on BSP spec compliance
         config.setWsiBSPCompliant(true);
         newEngine.setWssConfig(config);
         try {

Modified: 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/TimestampTest.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/TimestampTest.java?rev=1075383&r1=1075382&r2=1075383&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/TimestampTest.java
 (original)
+++ 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/TimestampTest.java
 Mon Feb 28 15:39:16 2011
@@ -314,7 +314,7 @@ public class TimestampTest extends org.j
         
         // Turn off BSP compliance and the test should pass
         wssConfig.setWsiBSPCompliant(false);
-        verify(createdDoc, WSSConfig.getNewInstance());
+        verify(createdDoc, wssConfig);
     }
     
     /**


Reply via email to