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);
}
/**