You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2016/11/25 12:31:20 UTC

svn commit: r1771308 [1/4] - in /webservices/wss4j/trunk: integration/src/test/java/org/apache/wss4j/integration/test/kerberos/ ws-security-dom/src/main/java/org/apache/wss4j/dom/action/ ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/ ws-se...

Author: coheigea
Date: Fri Nov 25 12:31:19 2016
New Revision: 1771308

URL: http://svn.apache.org/viewvc?rev=1771308&view=rev
Log:
Finished refactoring

Modified:
    webservices/wss4j/trunk/integration/src/test/java/org/apache/wss4j/integration/test/kerberos/KerberosTest.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/AbstractDerivedAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKEncrypt.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKSign.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDerivedKeyBase.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncryptedKey.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSAMLToken.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSecurityContextToken.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignature.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureBase.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureConfirmation.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecTimestamp.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecUsernameToken.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/saml/WSSecSignatureSAML.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/AbstractSAMLCallbackHandler.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomAction.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CertificateStoreTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoProviderTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomActionProcessorTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomTokenTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/AttachmentTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/CertErrorTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/DerivedKeyTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptedDataInHeaderTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionAlgorithmSuiteTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionGCMTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionPartsTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/ModifiedRequestTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/NoSoapPrefixSignatureTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/PasswordEncryptorTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/PasswordTypeTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/ReplayTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/RequireSignedEncryptedDataElementsTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SKISignatureTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/STRSignatureTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SecurityContextTokenTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureAKITest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureAlgorithmSuiteTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCRLTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertConstraintsTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureEncryptionTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureIssuerCertConstraintsTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureKeyValueTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignaturePartsTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignedBSTTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SymmetricSignatureTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/TimestampTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UTDerivedKeyTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UTSignatureTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/XOPAttachmentTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BSTKerberosTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/FaultCodeTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/PrincipalTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/processor/EncryptedKeyDataRefTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/processor/ReferenceListDataRefTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlAlgorithmSuiteTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlAuthnTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlConditionsTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlNegativeTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlReferenceTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenCustomSignatureTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenDerivedTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenHOKTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenSVTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SignedSamlTokenHOKTest.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/validate/ValidatorTest.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AttachmentTest.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/DerivedKeyTokenTest.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/EncDecryptionTest.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SecurityContextTokenTest.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SignatureEncryptionTest.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SignatureTest.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/XOPAttachmentTest.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLCallbackHandlerImpl.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenHOKTest.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenReferenceTest.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenTest.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SamlTokenDerivedTest.java

Modified: webservices/wss4j/trunk/integration/src/test/java/org/apache/wss4j/integration/test/kerberos/KerberosTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/integration/src/test/java/org/apache/wss4j/integration/test/kerberos/KerberosTest.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/integration/src/test/java/org/apache/wss4j/integration/test/kerberos/KerberosTest.java (original)
+++ webservices/wss4j/trunk/integration/src/test/java/org/apache/wss4j/integration/test/kerberos/KerberosTest.java Fri Nov 25 12:31:19 2016
@@ -389,7 +389,7 @@ public class KerberosTest extends Abstra
         SecretKey secretKey = bst.getSecretKey();
         sign.setSecretKey(secretKey.getEncoded());
 
-        Document signedDoc = sign.build(doc, null);
+        Document signedDoc = sign.build(null);
 
         if (LOG.isDebugEnabled()) {
             String outputString =
@@ -465,7 +465,7 @@ public class KerberosTest extends Abstra
         byte[] digestBytes = KeyUtils.generateDigest(bst.getToken());
         sign.setCustomTokenId(Base64.getMimeEncoder().encodeToString(digestBytes));
 
-        Document signedDoc = sign.build(doc, null);
+        Document signedDoc = sign.build(null);
 
         WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), bst.getElement());
 
@@ -540,7 +540,7 @@ public class KerberosTest extends Abstra
         builder.setCustomReferenceValue(WSConstants.WSS_GSS_KRB_V5_AP_REQ);
         builder.setEncKeyId(bst.getID());
 
-        Document encryptedDoc = builder.build(doc, null);
+        Document encryptedDoc = builder.build(null);
 
         if (LOG.isDebugEnabled()) {
             String outputString =
@@ -611,7 +611,7 @@ public class KerberosTest extends Abstra
         builder.setCustomReferenceValue(WSConstants.WSS_GSS_KRB_V5_AP_REQ);
         builder.setEncKeyId(bst.getID());
 
-        Document encryptedDoc = builder.build(doc, null);
+        Document encryptedDoc = builder.build(null);
 
         WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), bst.getElement());
 
@@ -686,7 +686,7 @@ public class KerberosTest extends Abstra
         byte[] digestBytes = KeyUtils.generateDigest(bst.getToken());
         builder.setEncKeyId(Base64.getMimeEncoder().encodeToString(digestBytes));
 
-        Document encryptedDoc = builder.build(doc, null);
+        Document encryptedDoc = builder.build(null);
 
         WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), bst.getElement());
 
@@ -839,7 +839,7 @@ public class KerberosTest extends Abstra
             SecretKey secretKey = bst.getSecretKey();
             sign.setSecretKey(secretKey.getEncoded());
 
-            sign.build(doc, null);
+            sign.build(null);
             WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), bst.getElement());
 
             javax.xml.transform.Transformer transformer = TRANSFORMER_FACTORY.newTransformer();
@@ -935,7 +935,7 @@ public class KerberosTest extends Abstra
             byte[] digestBytes = KeyUtils.generateDigest(bst.getToken());
             sign.setCustomTokenId(Base64.getMimeEncoder().encodeToString(digestBytes));
 
-            sign.build(doc, null);
+            sign.build(null);
 
             WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), bst.getElement());
 
@@ -1103,7 +1103,7 @@ public class KerberosTest extends Abstra
             builder.setEncryptSymmKey(false);
             builder.setCustomReferenceValue(WSConstants.WSS_GSS_KRB_V5_AP_REQ);
             builder.setEncKeyId(bst.getID());
-            builder.build(doc, null);
+            builder.build(null);
             WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), bst.getElement());
 
             javax.xml.transform.Transformer transformer = TRANSFORMER_FACTORY.newTransformer();
@@ -1197,7 +1197,7 @@ public class KerberosTest extends Abstra
             byte[] digestBytes = KeyUtils.generateDigest(bst.getToken());
             builder.setEncKeyId(Base64.getMimeEncoder().encodeToString(digestBytes));
 
-            builder.build(doc, null);
+            builder.build(null);
 
             WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), bst.getElement());
 

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/AbstractDerivedAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/AbstractDerivedAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/AbstractDerivedAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/AbstractDerivedAction.java Fri Nov 25 12:31:19 2016
@@ -140,7 +140,7 @@ public abstract class AbstractDerivedAct
                 encrKeyBuilder.setMGFAlgorithm(mgfAlgorithm);
             }
 
-            encrKeyBuilder.prepare(doc, actionToken.getCrypto());
+            encrKeyBuilder.prepare(actionToken.getCrypto());
 
             byte[] ek = encrKeyBuilder.getEphemeralKey();
             String tokenIdentifier = encrKeyBuilder.getId();

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java Fri Nov 25 12:31:19 2016
@@ -19,7 +19,6 @@
 
 package org.apache.wss4j.dom.action;
 
-import org.w3c.dom.Document;
 import org.apache.wss4j.common.SecurityActionToken;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.RequestData;
@@ -33,7 +32,6 @@ public interface Action {
     void execute(
         WSHandler handler,
         SecurityActionToken actionToken,
-        Document doc,
         RequestData reqData
     ) throws WSSecurityException;
 

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java Fri Nov 25 12:31:19 2016
@@ -22,7 +22,6 @@ package org.apache.wss4j.dom.action;
 import javax.security.auth.callback.Callback;
 import javax.security.auth.callback.CallbackHandler;
 
-import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.apache.wss4j.common.SecurityActionToken;
 import org.apache.wss4j.common.ext.WSPasswordCallback;
@@ -32,8 +31,7 @@ import org.apache.wss4j.dom.handler.WSHa
 
 public class CustomTokenAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken,
-                        Document doc, RequestData reqData)
+    public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData)
         throws WSSecurityException {
         CallbackHandler callbackHandler = reqData.getCallbackHandler();
         if (callbackHandler == null) {

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java Fri Nov 25 12:31:19 2016
@@ -34,11 +34,9 @@ import org.apache.wss4j.dom.handler.Requ
 import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.message.WSSecEncrypt;
-import org.w3c.dom.Document;
 
 public class EncryptionAction implements Action {
-    public void execute(WSHandler handler, SecurityActionToken actionToken,
-                        Document doc, RequestData reqData)
+    public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         WSSecEncrypt wsEncrypt = new WSSecEncrypt(reqData.getSecHeader());
         wsEncrypt.setIdAllocator(reqData.getWssConfig().getIdAllocator());
@@ -123,7 +121,7 @@ public class EncryptionAction implements
         wsEncrypt.setStoreBytesInAttachment(reqData.isStoreBytesInAttachment());
 
         try {
-            wsEncrypt.build(doc, encryptionToken.getCrypto());
+            wsEncrypt.build(encryptionToken.getCrypto());
         } catch (WSSecurityException e) {
             throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, e, "empty",
                                           new Object[] {"Error during encryption: "});

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java Fri Nov 25 12:31:19 2016
@@ -40,8 +40,7 @@ import org.w3c.dom.Node;
 
 public class EncryptionDerivedAction extends AbstractDerivedAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken,
-                        Document doc, RequestData reqData)
+    public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         CallbackHandler callbackHandler = reqData.getCallbackHandler();
         if (callbackHandler == null) {
@@ -80,6 +79,7 @@ public class EncryptionDerivedAction ext
             wsEncrypt.setDerivedKeyLength(encryptionToken.getDerivedKeyLength());
         }
 
+        Document doc = reqData.getSecHeader().getSecurityHeaderElement().getOwnerDocument();
         Element tokenElement =
             setupTokenReference(reqData, encryptionToken, wsEncrypt, passwordCallback, doc);
         wsEncrypt.setAttachmentCallbackHandler(reqData.getAttachmentCallbackHandler());
@@ -93,7 +93,7 @@ public class EncryptionDerivedAction ext
                 wsEncrypt.getParts().add(WSSecurityUtil.getDefaultEncryptionPart(doc));
             }
 
-            wsEncrypt.prepare(doc);
+            wsEncrypt.prepare();
 
             Element externRefList = wsEncrypt.encrypt();
 

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java Fri Nov 25 12:31:19 2016
@@ -34,15 +34,13 @@ import org.apache.wss4j.dom.handler.Requ
 import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.saml.WSSecSignatureSAML;
-import org.w3c.dom.Document;
 
 public class SAMLTokenSignedAction implements Action {
 
     private static final org.slf4j.Logger LOG =
         org.slf4j.LoggerFactory.getLogger(SAMLTokenSignedAction.class);
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken,
-                        Document doc, RequestData reqData)
+    public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         Crypto crypto = null;
 
@@ -121,7 +119,6 @@ public class SAMLTokenSignedAction imple
 
         try {
             wsSign.build(
-                    doc,
                     crypto,
                     samlAssertion,
                     samlCallback.getIssuerCrypto(),

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java Fri Nov 25 12:31:19 2016
@@ -30,12 +30,10 @@ import org.apache.wss4j.dom.handler.Requ
 import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.message.WSSecSAMLToken;
-import org.w3c.dom.Document;
 
 public class SAMLTokenUnsignedAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken,
-                        Document doc, RequestData reqData)
+    public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         WSSecSAMLToken builder = new WSSecSAMLToken(reqData.getSecHeader());
         builder.setIdAllocator(reqData.getWssConfig().getIdAllocator());
@@ -68,6 +66,6 @@ public class SAMLTokenUnsignedAction imp
         }
 
         // add the SAMLAssertion Token to the SOAP Envelope
-        builder.build(doc, samlAssertion);
+        builder.build(samlAssertion);
     }
 }

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java Fri Nov 25 12:31:19 2016
@@ -39,8 +39,7 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
 public class SignatureAction implements Action {
-    public void execute(WSHandler handler, SecurityActionToken actionToken,
-                        Document doc, RequestData reqData)
+    public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         CallbackHandler callbackHandler = reqData.getCallbackHandler();
         if (callbackHandler == null) {
@@ -101,7 +100,7 @@ public class SignatureAction implements
         wsSign.setStoreBytesInAttachment(reqData.isStoreBytesInAttachment());
 
         try {
-            wsSign.prepare(doc, signatureToken.getCrypto());
+            wsSign.prepare(signatureToken.getCrypto());
 
             Element siblingElementToPrepend = null;
             boolean signBST = false;
@@ -141,6 +140,7 @@ public class SignatureAction implements
             List<WSEncryptionPart> parts = signatureToken.getParts();
             if (parts == null || parts.isEmpty()) {
                 parts = new ArrayList<>(1);
+                Document doc = reqData.getSecHeader().getSecurityHeaderElement().getOwnerDocument();
                 parts.add(WSSecurityUtil.getDefaultEncryptionPart(doc));
             }
 

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java Fri Nov 25 12:31:19 2016
@@ -30,7 +30,6 @@ import org.apache.wss4j.dom.handler.WSHa
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.handler.WSHandlerResult;
 import org.apache.wss4j.dom.message.WSSecSignatureConfirmation;
-import org.w3c.dom.Document;
 
 import java.util.List;
 
@@ -39,8 +38,7 @@ public class SignatureConfirmationAction
         org.slf4j.LoggerFactory.getLogger(SignatureConfirmationAction.class);
 
     @SuppressWarnings("unchecked")
-    public void execute(WSHandler handler, SecurityActionToken actionToken,
-                        Document doc, RequestData reqData)
+    public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         if (LOG.isDebugEnabled()) {
             LOG.debug("Perform Signature confirmation");
@@ -81,7 +79,7 @@ public class SignatureConfirmationAction
                         || WSConstants.ST_SIGNED == resultAction.intValue()
                         || WSConstants.UT_SIGN == resultAction.intValue())) {
                     byte[] sigVal = (byte[]) result.get(WSSecurityEngineResult.TAG_SIGNATURE_VALUE);
-                    wsc.build(doc, sigVal);
+                    wsc.build(sigVal);
                     signatureParts.add(new WSEncryptionPart(wsc.getId()));
                     signatureAdded = true;
                 }
@@ -89,7 +87,7 @@ public class SignatureConfirmationAction
         }
 
         if (!signatureAdded) {
-            wsc.build(doc, null);
+            wsc.build(null);
             signatureParts.add(new WSEncryptionPart(wsc.getId()));
         }
         handler.setProperty(

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java Fri Nov 25 12:31:19 2016
@@ -41,8 +41,7 @@ import org.w3c.dom.Node;
 
 public class SignatureDerivedAction extends AbstractDerivedAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken,
-                        Document doc, RequestData reqData)
+    public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         CallbackHandler callbackHandler = reqData.getCallbackHandler();
         if (callbackHandler == null) {
@@ -84,6 +83,7 @@ public class SignatureDerivedAction exte
             wsSign.setDerivedKeyLength(signatureToken.getDerivedKeyLength());
         }
 
+        Document doc = reqData.getSecHeader().getSecurityHeaderElement().getOwnerDocument();
         Element tokenElement =
             setupTokenReference(reqData, signatureToken, wsSign, passwordCallback, doc);
         wsSign.setAttachmentCallbackHandler(reqData.getAttachmentCallbackHandler());
@@ -97,7 +97,7 @@ public class SignatureDerivedAction exte
                 wsSign.getParts().add(WSSecurityUtil.getDefaultEncryptionPart(doc));
             }
 
-            wsSign.prepare(doc);
+            wsSign.prepare();
 
             List<javax.xml.crypto.dsig.Reference> referenceList = wsSign.addReferencesToSign(parts);
 

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java Fri Nov 25 12:31:19 2016
@@ -24,12 +24,10 @@ import org.apache.wss4j.common.ext.WSSec
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.message.WSSecTimestamp;
-import org.w3c.dom.Document;
 
 public class TimestampAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken,
-                        Document doc, RequestData reqData)
+    public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData)
         throws WSSecurityException {
         //
         // add the Timestamp to the SOAP Envelope
@@ -39,6 +37,6 @@ public class TimestampAction implements
         timeStampBuilder.setPrecisionInMilliSeconds(reqData.isPrecisionInMilliSeconds());
         timeStampBuilder.setTimeToLive(reqData.getTimeStampTTL());
         timeStampBuilder.setWsTimeSource(reqData.getWssConfig().getCurrentTime());
-        timeStampBuilder.build(doc);
+        timeStampBuilder.build();
     }
 }

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java Fri Nov 25 12:31:19 2016
@@ -28,12 +28,10 @@ import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.message.WSSecUsernameToken;
-import org.w3c.dom.Document;
 
 public class UsernameTokenAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken,
-                        Document doc, RequestData reqData)
+    public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData)
         throws WSSecurityException {
         String username = reqData.getUsername();
         String password = null;
@@ -66,6 +64,6 @@ public class UsernameTokenAction impleme
             builder.addCreated();
         }
 
-        builder.build(doc);
+        builder.build();
     }
 }

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java Fri Nov 25 12:31:19 2016
@@ -45,8 +45,7 @@ import org.w3c.dom.Document;
  */
 
 public class UsernameTokenSignedAction implements Action {
-    public void execute(WSHandler handler, SecurityActionToken actionToken,
-                        Document doc, RequestData reqData)
+    public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         CallbackHandler callbackHandler = reqData.getCallbackHandler();
         if (callbackHandler == null) {
@@ -71,7 +70,7 @@ public class UsernameTokenSignedAction i
         builder.setUserInfo(reqData.getUsername(), passwordCallback.getPassword());
         builder.addCreated();
         builder.addNonce();
-        builder.prepare(doc);
+        builder.prepare();
 
         // Now prepare to sign.
         // First step:  Get a WS Signature object and set config parameters
@@ -115,7 +114,7 @@ public class UsernameTokenSignedAction i
             sign.setSignatureAlgorithm(WSConstants.HMAC_SHA1);
         }
 
-        sign.prepare(doc, null);
+        sign.prepare(null);
 
         // prepend in this order: first the Signature Element and then the
         // UsernameToken Element. This way the server gets the UsernameToken
@@ -128,6 +127,7 @@ public class UsernameTokenSignedAction i
             parts = signatureToken.getParts();
         } else {
             parts = new ArrayList<>(1);
+            Document doc = reqData.getSecHeader().getSecurityHeaderElement().getOwnerDocument();
             parts.add(WSSecurityUtil.getDefaultEncryptionPart(doc));
         }
         List<javax.xml.crypto.dsig.Reference> referenceList = sign.addReferencesToSign(parts);

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java Fri Nov 25 12:31:19 2016
@@ -196,7 +196,7 @@ public abstract class WSHandler {
             String done =
                 (String)getProperty(reqData.getMsgContext(), WSHandlerConstants.SIG_CONF_DONE);
             if (done == null) {
-                wssConfig.getAction(WSConstants.SC).execute(this, null, doc, reqData);
+                wssConfig.getAction(WSConstants.SC).execute(this, null, reqData);
             }
         }
 
@@ -228,7 +228,7 @@ public abstract class WSHandler {
 
             if (WSConstants.NO_SECURITY != actionToDo.getAction()) {
                 wssConfig.getAction(actionToDo.getAction()).execute(
-                    this, actionToDo.getActionToken(), doc, reqData);
+                    this, actionToDo.getActionToken(), reqData);
             }
         }
 

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java Fri Nov 25 12:31:19 2016
@@ -51,9 +51,24 @@ public class WSSecBase {
     private WsuIdAllocator idAllocator;
     private final List<WSEncryptionPart> parts = new ArrayList<>();
     private final WSSecHeader securityHeader;
+    private final Document doc;
 
     public WSSecBase(WSSecHeader securityHeader) {
         this.securityHeader = securityHeader;
+        if (securityHeader != null && securityHeader.getSecurityHeaderElement() != null) {
+            doc = securityHeader.getSecurityHeaderElement().getOwnerDocument();
+        } else {
+            doc = null;
+        }
+    }
+    
+    public WSSecBase(Document doc) {
+        this.doc = doc;
+        securityHeader = new WSSecHeader(doc);
+    }
+    
+    protected Document getDocument() {
+        return doc;
     }
     
     public WSSecHeader getSecurityHeader() {

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKEncrypt.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKEncrypt.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKEncrypt.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKEncrypt.java Fri Nov 25 12:31:19 2016
@@ -54,20 +54,24 @@ public class WSSecDKEncrypt extends WSSe
     public WSSecDKEncrypt(WSSecHeader securityHeader) {
         super(securityHeader);
     }
+    
+    public WSSecDKEncrypt(Document doc) {
+        super(doc);
+    }
 
     @Override
-    public void prepare(Document doc) throws WSSecurityException {
-        super.prepare(doc);
+    public void prepare() throws WSSecurityException {
+        super.prepare();
 
         attachmentEncryptedDataElements = new ArrayList<>();
     }
 
-    public Document build(Document doc) throws WSSecurityException {
+    public Document build() throws WSSecurityException {
 
         //
         // Setup the encrypted key
         //
-        prepare(doc);
+        prepare();
         //
         // prepend elements in the right order to the security header
         //
@@ -79,7 +83,7 @@ public class WSSecDKEncrypt extends WSSe
 
         addExternalRefElement(externRefList);
 
-        return doc;
+        return getDocument();
     }
 
     public void addAttachmentEncryptedDataElements() {
@@ -94,7 +98,7 @@ public class WSSecDKEncrypt extends WSSe
 
     public Element encrypt() throws WSSecurityException {
         if (getParts().isEmpty()) {
-            getParts().add(WSSecurityUtil.getDefaultEncryptionPart(document));
+            getParts().add(WSSecurityUtil.getDefaultEncryptionPart(getDocument()));
         }
 
         return encryptForExternalRef(null, getParts());
@@ -130,17 +134,17 @@ public class WSSecDKEncrypt extends WSSe
 
         List<String> encDataRefs =
             WSSecEncrypt.doEncryption(
-                document, getSecurityHeader(), getIdAllocator(), keyInfo, key, symEncAlgo, references, callbackLookup,
+                getDocument(), getSecurityHeader(), getIdAllocator(), keyInfo, key, symEncAlgo, references, callbackLookup,
                 attachmentCallbackHandler, attachmentEncryptedDataElements, storeBytesInAttachment,
                 encryptionSerializer
             );
         if (dataRef == null) {
             dataRef =
-                document.createElementNS(
+                getDocument().createElementNS(
                     WSConstants.ENC_NS, WSConstants.ENC_PREFIX + ":ReferenceList"
                 );
         }
-        return WSSecEncrypt.createDataRefList(document, dataRef, encDataRefs);
+        return WSSecEncrypt.createDataRefList(getDocument(), dataRef, encDataRefs);
     }
 
     /**
@@ -148,10 +152,10 @@ public class WSSecDKEncrypt extends WSSe
      * @throws ConversationException
      */
     private KeyInfo createKeyInfo() throws WSSecurityException {
-        KeyInfo keyInfo = new KeyInfo(document);
-        SecurityTokenReference secToken = new SecurityTokenReference(document);
+        KeyInfo keyInfo = new KeyInfo(getDocument());
+        SecurityTokenReference secToken = new SecurityTokenReference(getDocument());
         secToken.addWSSENamespace();
-        Reference ref = new Reference(document);
+        Reference ref = new Reference(getDocument());
         ref.setURI("#" + getId());
         String ns =
             ConversationConstants.getWSCNs(getWscVersion())

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKSign.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKSign.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKSign.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKSign.java Fri Nov 25 12:31:19 2016
@@ -80,6 +80,11 @@ public class WSSecDKSign extends WSSecDe
         super(securityHeader);
         init();
     }
+    
+    public WSSecDKSign(Document doc) {
+        super(doc);
+        init();
+    }
 
     private void init() {
         // Try to install the Santuario Provider - fall back to the JDK provider if this does
@@ -91,11 +96,11 @@ public class WSSecDKSign extends WSSecDe
         }
     }
 
-    public Document build(Document doc) throws WSSecurityException {
+    public Document build() throws WSSecurityException {
 
-        prepare(doc);
+        prepare();
         if (getParts().isEmpty()) {
-            getParts().add(WSSecurityUtil.getDefaultEncryptionPart(document));
+            getParts().add(WSSecurityUtil.getDefaultEncryptionPart(getDocument()));
         } else {
             for (WSEncryptionPart part : getParts()) {
                 if ("STRTransform".equals(part.getName()) && part.getId() == null) {
@@ -112,12 +117,12 @@ public class WSSecDKSign extends WSSecDe
         //
         prependDKElementToHeader();
 
-        return doc;
+        return getDocument();
     }
 
-    public void prepare(Document doc) throws WSSecurityException {
-        super.prepare(doc);
-        wsDocInfo = new WSDocInfo(doc);
+    public void prepare() throws WSSecurityException {
+        super.prepare();
+        wsDocInfo = new WSDocInfo(getDocument());
         sig = null;
 
         try {
@@ -139,11 +144,11 @@ public class WSSecDKSign extends WSSecDe
 
         keyInfoUri = getIdAllocator().createSecureId("KI-", keyInfo);
 
-        secRef = new SecurityTokenReference(doc);
+        secRef = new SecurityTokenReference(getDocument());
         strUri = getIdAllocator().createSecureId("STR-", secRef);
         secRef.setID(strUri);
 
-        Reference ref = new Reference(document);
+        Reference ref = new Reference(getDocument());
         ref.setURI("#" + getId());
         String ns =
             ConversationConstants.getWSCNs(getWscVersion())
@@ -185,7 +190,7 @@ public class WSSecDKSign extends WSSecDe
     ) throws WSSecurityException {
         return
             addReferencesToSign(
-                document,
+                getDocument(),
                 references,
                 wsDocInfo,
                 signatureFactory,

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDerivedKeyBase.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDerivedKeyBase.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDerivedKeyBase.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDerivedKeyBase.java Fri Nov 25 12:31:19 2016
@@ -49,8 +49,6 @@ public abstract class WSSecDerivedKeyBas
     private static final org.slf4j.Logger LOG =
         org.slf4j.LoggerFactory.getLogger(WSSecDerivedKeyBase.class);
 
-    protected Document document;
-
     /**
      * DerivedKeyToken of this builder
      */
@@ -108,6 +106,11 @@ public abstract class WSSecDerivedKeyBas
         super(securityHeader);
         setKeyIdentifierType(0);
     }
+    
+    public WSSecDerivedKeyBase(Document doc) {
+        super(doc);
+        setKeyIdentifierType(0);
+    }
 
     /**
      * The derived key will change depending on the sig/encr algorithm.
@@ -187,12 +190,9 @@ public abstract class WSSecDerivedKeyBas
      * This method does not add any element to the security header. This must be
      * done explicitly.
      *
-     * @param doc The unsigned SOAP envelope as <code>Document</code>
      * @throws WSSecurityException
      */
-    public void prepare(Document doc) throws WSSecurityException {
-
-        document = doc;
+    public void prepare() throws WSSecurityException {
 
         // Create the derived keys
         // At this point figure out the key length according to the symencAlgo
@@ -218,7 +218,7 @@ public abstract class WSSecDerivedKeyBas
         derivedKeyBytes = algo.createKey(ephemeralKey, seed, offset, length);
 
         // Add the DKTs
-        dkt = new DerivedKeyToken(wscVersion, document);
+        dkt = new DerivedKeyToken(wscVersion, getDocument());
         dktId = getIdAllocator().createId("DK-", dkt);
 
         dkt.setOffset(offset);
@@ -227,7 +227,7 @@ public abstract class WSSecDerivedKeyBas
         dkt.setID(dktId);
 
         if (strElem == null) {
-            SecurityTokenReference secRef = new SecurityTokenReference(document);
+            SecurityTokenReference secRef = new SecurityTokenReference(getDocument());
             String strUri = getIdAllocator().createSecureId("STR-", secRef);
             secRef.setID(strUri);
 
@@ -258,7 +258,7 @@ public abstract class WSSecDerivedKeyBas
                 }
                 break;
             default:
-                Reference ref = new Reference(document);
+                Reference ref = new Reference(getDocument());
 
                 if (tokenIdDirectId) {
                     ref.setURI(tokenIdentifier);

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java Fri Nov 25 12:31:19 2016
@@ -111,6 +111,10 @@ public class WSSecEncrypt extends WSSecE
     public WSSecEncrypt(WSSecHeader securityHeader) {
         super(securityHeader);
     }
+    
+    public WSSecEncrypt(Document doc) {
+        super(doc);
+    }
 
     /**
      * Initialize a WSSec Encrypt.
@@ -122,12 +126,10 @@ public class WSSecEncrypt extends WSSecE
      * This method does not add any element to the security header. This must be
      * done explicitly.
      *
-     * @param doc The SOAP envelope as <code>Document</code>
      * @param crypto An instance of the Crypto API to handle keystore and certificates
      * @throws WSSecurityException
      */
-    public void prepare(Document doc, Crypto crypto) throws WSSecurityException {
-        document = doc;
+    public void prepare(Crypto crypto) throws WSSecurityException {
         attachmentEncryptedDataElements = new ArrayList<>();
 
         //
@@ -187,16 +189,15 @@ public class WSSecEncrypt extends WSSecE
      * calls the single function methods in order to perform a <i>one shot
      * encryption</i>. 
      *
-     * @param doc the SOAP envelope as <code>Document</code> with plain text Body
      * @param crypto an instance of the Crypto API to handle keystore and Certificates
      * @return the SOAP envelope with encrypted Body as <code>Document</code>
      * @throws WSSecurityException
      */
-    public Document build(Document doc, Crypto crypto)
+    public Document build(Crypto crypto)
         throws WSSecurityException {
         doDebug = LOG.isDebugEnabled();
 
-        prepare(doc, crypto);
+        prepare(crypto);
 
         if (doDebug) {
             LOG.debug("Beginning Encryption...");
@@ -216,12 +217,12 @@ public class WSSecEncrypt extends WSSecE
 
         clean();
         LOG.debug("Encryption complete.");
-        return doc;
+        return getDocument();
     }
 
     public Element encrypt() throws WSSecurityException {
         if (getParts().isEmpty()) {
-            getParts().add(WSSecurityUtil.getDefaultEncryptionPart(document));
+            getParts().add(WSSecurityUtil.getDefaultEncryptionPart(getDocument()));
         }
 
         return encryptForRef(null, getParts());
@@ -259,7 +260,7 @@ public class WSSecEncrypt extends WSSecE
         SecretKeySpec secretKeySpec = new SecretKeySpec(symmetricKey.getEncoded(), symmetricKey.getAlgorithm());
         List<String> encDataRefs =
             doEncryption(
-                document, getSecurityHeader(), getIdAllocator(), keyInfo, secretKeySpec, getSymmetricEncAlgorithm(), 
+                getDocument(), getSecurityHeader(), getIdAllocator(), keyInfo, secretKeySpec, getSymmetricEncAlgorithm(), 
                 references, callbackLookup, attachmentCallbackHandler, attachmentEncryptedDataElements,
                 storeBytesInAttachment
             );
@@ -269,7 +270,7 @@ public class WSSecEncrypt extends WSSecE
 
         if (dataRef == null) {
             dataRef =
-                document.createElementNS(
+                getDocument().createElementNS(
                     WSConstants.ENC_NS,
                     WSConstants.ENC_PREFIX + ":ReferenceList"
                 );
@@ -283,7 +284,7 @@ public class WSSecEncrypt extends WSSecE
                 );
             }
         }
-        return createDataRefList(document, dataRef, encDataRefs);
+        return createDataRefList(getDocument(), dataRef, encDataRefs);
     }
 
     /**
@@ -762,11 +763,11 @@ public class WSSecEncrypt extends WSSecE
      */
     private KeyInfo createKeyInfo() throws WSSecurityException {
 
-        KeyInfo keyInfo = new KeyInfo(document);
+        KeyInfo keyInfo = new KeyInfo(getDocument());
         if (embedEncryptedKey) {
             keyInfo.addUnknownElement(getEncryptedKeyElement());
         } else if (keyIdentifierType == WSConstants.ENCRYPTED_KEY_SHA1_IDENTIFIER) {
-            SecurityTokenReference secToken = new SecurityTokenReference(document);
+            SecurityTokenReference secToken = new SecurityTokenReference(getDocument());
             secToken.addWSSENamespace();
             if (customReferenceValue != null) {
                 secToken.setKeyIdentifierEncKeySHA1(customReferenceValue);
@@ -777,19 +778,19 @@ public class WSSecEncrypt extends WSSecE
             secToken.addTokenType(WSConstants.WSS_ENC_KEY_VALUE_TYPE);
             keyInfo.addUnknownElement(secToken.getElement());
         } else if (WSConstants.WSS_SAML_KI_VALUE_TYPE.equals(customReferenceValue)) {
-            SecurityTokenReference secToken = new SecurityTokenReference(document);
+            SecurityTokenReference secToken = new SecurityTokenReference(getDocument());
             secToken.addWSSENamespace();
             secToken.addTokenType(WSConstants.WSS_SAML_TOKEN_TYPE);
             secToken.setKeyIdentifier(WSConstants.WSS_SAML_KI_VALUE_TYPE, getId());
             keyInfo.addUnknownElement(secToken.getElement());
         } else if (WSConstants.WSS_SAML2_KI_VALUE_TYPE.equals(customReferenceValue)) {
-            SecurityTokenReference secToken = new SecurityTokenReference(document);
+            SecurityTokenReference secToken = new SecurityTokenReference(getDocument());
             secToken.addWSSENamespace();
             secToken.addTokenType(WSConstants.WSS_SAML2_TOKEN_TYPE);
             secToken.setKeyIdentifier(WSConstants.WSS_SAML2_KI_VALUE_TYPE, getId());
             keyInfo.addUnknownElement(secToken.getElement());
         } else if (WSConstants.WSS_KRB_KI_VALUE_TYPE.equals(customReferenceValue)) {
-            SecurityTokenReference secToken = new SecurityTokenReference(document);
+            SecurityTokenReference secToken = new SecurityTokenReference(getDocument());
             secToken.addWSSENamespace();
             secToken.addTokenType(WSConstants.WSS_GSS_KRB_V5_AP_REQ);
             secToken.setKeyIdentifier(customReferenceValue, getId(), true);
@@ -801,9 +802,9 @@ public class WSSecEncrypt extends WSSecE
             );
             keyInfo.addUnknownElement(securityTokenReference.getElement());
         } else if (getId() != null) {
-            SecurityTokenReference secToken = new SecurityTokenReference(document);
+            SecurityTokenReference secToken = new SecurityTokenReference(getDocument());
             secToken.addWSSENamespace();
-            Reference ref = new Reference(document);
+            Reference ref = new Reference(getDocument());
             if (encKeyIdDirectId) {
                 ref.setURI(getId());
             } else {
@@ -820,7 +821,7 @@ public class WSSecEncrypt extends WSSecE
             }
             keyInfo.addUnknownElement(secToken.getElement());
         } else if (!encryptSymmKey && keyIdentifierType == WSConstants.ISSUER_SERIAL) {
-            SecurityTokenReference secToken = new SecurityTokenReference(document);
+            SecurityTokenReference secToken = new SecurityTokenReference(getDocument());
             secToken.addWSSENamespace();
             if (customReferenceValue != null) {
                 secToken.setKeyIdentifierEncKeySHA1(customReferenceValue);

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncryptedKey.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncryptedKey.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncryptedKey.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncryptedKey.java Fri Nov 25 12:31:19 2016
@@ -73,8 +73,6 @@ public class WSSecEncryptedKey extends W
     private static final org.slf4j.Logger LOG =
         org.slf4j.LoggerFactory.getLogger(WSSecEncryptedKey.class);
 
-    protected Document document;
-
     /**
      * Encrypted bytes of the ephemeral key
      */
@@ -150,6 +148,10 @@ public class WSSecEncryptedKey extends W
     public WSSecEncryptedKey(WSSecHeader securityHeader) {
         super(securityHeader);
     }
+    
+    public WSSecEncryptedKey(Document doc) {
+        super(doc);
+    }
 
     /**
      * Set the user name to get the encryption certificate.
@@ -186,13 +188,10 @@ public class WSSecEncryptedKey extends W
      * Prepare the ephemeralKey and the tokens required to be added to the
      * security header
      *
-     * @param doc The SOAP envelope as <code>Document</code>
      * @param crypto An instance of the Crypto API to handle keystore and certificates
      * @throws WSSecurityException
      */
-    public void prepare(Document doc, Crypto crypto) throws WSSecurityException {
-
-        document = doc;
+    public void prepare(Crypto crypto) throws WSSecurityException {
 
         //
         // Set up the symmetric key
@@ -323,16 +322,16 @@ public class WSSecEncryptedKey extends W
         // 4) Create the CipherValue element structure and insert the encrypted
         // session key
         //
-        encryptedKeyElement = createEncryptedKey(document, keyEncAlgo);
+        encryptedKeyElement = createEncryptedKey(getDocument(), keyEncAlgo);
         if (encKeyId == null || "".equals(encKeyId)) {
             encKeyId = IDGenerator.generateID("EK-");
         }
         encryptedKeyElement.setAttributeNS(null, "Id", encKeyId);
 
         if (customEKKeyInfoElement != null) {
-            encryptedKeyElement.appendChild(document.adoptNode(customEKKeyInfoElement));
+            encryptedKeyElement.appendChild(getDocument().adoptNode(customEKKeyInfoElement));
         } else {
-            SecurityTokenReference secToken = new SecurityTokenReference(document);
+            SecurityTokenReference secToken = new SecurityTokenReference(getDocument());
 
             switch (keyIdentifierType) {
             case WSConstants.X509_KEY_IDENTIFIER:
@@ -365,9 +364,9 @@ public class WSSecEncryptedKey extends W
                 java.math.BigInteger serialNumber = remoteCert.getSerialNumber();
                 DOMX509IssuerSerial domIssuerSerial =
                     new DOMX509IssuerSerial(
-                        document, issuer, serialNumber
+                        getDocument(), issuer, serialNumber
                     );
-                DOMX509Data domX509Data = new DOMX509Data(document, domIssuerSerial);
+                DOMX509Data domX509Data = new DOMX509Data(getDocument(), domIssuerSerial);
                 secToken.setUnknownElement(domX509Data.getElement());
 
                 if (includeEncryptionToken) {
@@ -376,10 +375,10 @@ public class WSSecEncryptedKey extends W
                 break;
 
             case WSConstants.BST_DIRECT_REFERENCE:
-                Reference ref = new Reference(document);
+                Reference ref = new Reference(getDocument());
                 String certUri = IDGenerator.generateID(null);
                 ref.setURI("#" + certUri);
-                bstToken = new X509Security(document);
+                bstToken = new X509Security(getDocument());
                 ((X509Security) bstToken).setX509Certificate(remoteCert);
                 bstToken.setID(certUri);
                 ref.setValueType(bstToken.getValueType());
@@ -387,7 +386,7 @@ public class WSSecEncryptedKey extends W
                 break;
 
             case WSConstants.CUSTOM_SYMM_SIGNING :
-                Reference refCust = new Reference(document);
+                Reference refCust = new Reference(getDocument());
                 if (WSConstants.WSS_SAML_KI_VALUE_TYPE.equals(customEKTokenValueType)) {
                     secToken.addTokenType(WSConstants.WSS_SAML_TOKEN_TYPE);
                     refCust.setValueType(customEKTokenValueType);
@@ -404,7 +403,7 @@ public class WSSecEncryptedKey extends W
                 break;
 
             case WSConstants.CUSTOM_SYMM_SIGNING_DIRECT :
-                Reference refCustd = new Reference(document);
+                Reference refCustd = new Reference(getDocument());
                 if (WSConstants.WSS_SAML_KI_VALUE_TYPE.equals(customEKTokenValueType)) {
                     secToken.addTokenType(WSConstants.WSS_SAML_TOKEN_TYPE);
                     refCustd.setValueType(customEKTokenValueType);
@@ -437,7 +436,7 @@ public class WSSecEncryptedKey extends W
                 throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "unsupportedKeyId");
             }
             Element keyInfoElement =
-                document.createElementNS(
+                getDocument().createElementNS(
                     WSConstants.SIG_NS, WSConstants.SIG_PREFIX + ":" + WSConstants.KEYINFO_LN
                 );
             keyInfoElement.setAttributeNS(
@@ -447,14 +446,14 @@ public class WSSecEncryptedKey extends W
             encryptedKeyElement.appendChild(keyInfoElement);
         }
 
-        Element xencCipherValue = createCipherValue(document, encryptedKeyElement);
+        Element xencCipherValue = createCipherValue(getDocument(), encryptedKeyElement);
         if (storeBytesInAttachment) {
-            final String attachmentId = getIdAllocator().createId("", document);
-            WSSecurityUtil.storeBytesInAttachment(xencCipherValue, document, attachmentId,
+            final String attachmentId = getIdAllocator().createId("", getDocument());
+            WSSecurityUtil.storeBytesInAttachment(xencCipherValue, getDocument(), attachmentId,
                                                   encryptedEphemeralKey, attachmentCallbackHandler);
         } else {
             Text keyText =
-                WSSecurityUtil.createBase64EncodedTextNode(document, encryptedEphemeralKey);
+                WSSecurityUtil.createBase64EncodedTextNode(getDocument(), encryptedEphemeralKey);
             xencCipherValue.appendChild(keyText);
         }
     }
@@ -474,21 +473,21 @@ public class WSSecEncryptedKey extends W
         // 4) Create the CipherValue element structure and insert the encrypted
         // session key
         //
-        encryptedKeyElement = createEncryptedKey(document, keyEncAlgo);
+        encryptedKeyElement = createEncryptedKey(getDocument(), keyEncAlgo);
         if (encKeyId == null || "".equals(encKeyId)) {
             encKeyId = IDGenerator.generateID("EK-");
         }
         encryptedKeyElement.setAttributeNS(null, "Id", encKeyId);
 
         if (customEKKeyInfoElement != null) {
-            encryptedKeyElement.appendChild(document.adoptNode(customEKKeyInfoElement));
+            encryptedKeyElement.appendChild(getDocument().adoptNode(customEKKeyInfoElement));
         } else {
             SecurityTokenReference secToken = null;
             
             switch (keyIdentifierType) {
             case WSConstants.CUSTOM_SYMM_SIGNING :
-                secToken = new SecurityTokenReference(document);
-                Reference refCust = new Reference(document);
+                secToken = new SecurityTokenReference(getDocument());
+                Reference refCust = new Reference(getDocument());
                 if (WSConstants.WSS_SAML_KI_VALUE_TYPE.equals(customEKTokenValueType)) {
                     secToken.addTokenType(WSConstants.WSS_SAML_TOKEN_TYPE);
                     refCust.setValueType(customEKTokenValueType);
@@ -505,8 +504,8 @@ public class WSSecEncryptedKey extends W
                 break;
 
             case WSConstants.CUSTOM_SYMM_SIGNING_DIRECT :
-                secToken = new SecurityTokenReference(document);
-                Reference refCustd = new Reference(document);
+                secToken = new SecurityTokenReference(getDocument());
+                Reference refCustd = new Reference(getDocument());
                 if (WSConstants.WSS_SAML_KI_VALUE_TYPE.equals(customEKTokenValueType)) {
                     secToken.addTokenType(WSConstants.WSS_SAML_TOKEN_TYPE);
                     refCustd.setValueType(customEKTokenValueType);
@@ -523,7 +522,7 @@ public class WSSecEncryptedKey extends W
                 break;
 
             case WSConstants.CUSTOM_KEY_IDENTIFIER:
-                secToken = new SecurityTokenReference(document);
+                secToken = new SecurityTokenReference(getDocument());
                 secToken.setKeyIdentifier(customEKTokenValueType, customEKTokenId);
                 if (WSConstants.WSS_SAML_KI_VALUE_TYPE.equals(customEKTokenValueType)) {
                     secToken.addTokenType(WSConstants.WSS_SAML_TOKEN_TYPE);
@@ -564,7 +563,7 @@ public class WSSecEncryptedKey extends W
             
             if (secToken != null) {
                 Element keyInfoElement =
-                    document.createElementNS(
+                    getDocument().createElementNS(
                         WSConstants.SIG_NS, WSConstants.SIG_PREFIX + ":" + WSConstants.KEYINFO_LN
                     );
                 keyInfoElement.setAttributeNS(
@@ -575,36 +574,36 @@ public class WSSecEncryptedKey extends W
             }
         }
 
-        Element xencCipherValue = createCipherValue(document, encryptedKeyElement);
+        Element xencCipherValue = createCipherValue(getDocument(), encryptedKeyElement);
         if (storeBytesInAttachment) {
-            final String attachmentId = getIdAllocator().createId("", document);
-            WSSecurityUtil.storeBytesInAttachment(xencCipherValue, document, attachmentId,
+            final String attachmentId = getIdAllocator().createId("", getDocument());
+            WSSecurityUtil.storeBytesInAttachment(xencCipherValue, getDocument(), attachmentId,
                                                   encryptedEphemeralKey, attachmentCallbackHandler);
         } else {
             Text keyText =
-                WSSecurityUtil.createBase64EncodedTextNode(document, encryptedEphemeralKey);
+                WSSecurityUtil.createBase64EncodedTextNode(getDocument(), encryptedEphemeralKey);
             xencCipherValue.appendChild(keyText);
         }
     }
 
     protected void prepareInternal(SecretKey secretKey) throws WSSecurityException {
-        encryptedKeyElement = createEncryptedKey(document, keyEncAlgo);
+        encryptedKeyElement = createEncryptedKey(getDocument(), keyEncAlgo);
         if (encKeyId == null || "".equals(encKeyId)) {
             encKeyId = IDGenerator.generateID("EK-");
         }
         encryptedKeyElement.setAttributeNS(null, "Id", encKeyId);
 
         if (customEKKeyInfoElement != null) {
-            encryptedKeyElement.appendChild(document.adoptNode(customEKKeyInfoElement));
+            encryptedKeyElement.appendChild(getDocument().adoptNode(customEKKeyInfoElement));
         } else if (keyIdentifierType == WSConstants.CUSTOM_SYMM_SIGNING
             || keyIdentifierType == WSConstants.CUSTOM_SYMM_SIGNING_DIRECT
             || keyIdentifierType == WSConstants.CUSTOM_KEY_IDENTIFIER) {
-            SecurityTokenReference secToken = new SecurityTokenReference(document);
+            SecurityTokenReference secToken = new SecurityTokenReference(getDocument());
 
             switch (keyIdentifierType) {
 
                 case WSConstants.CUSTOM_SYMM_SIGNING :
-                    Reference refCust = new Reference(document);
+                    Reference refCust = new Reference(getDocument());
                     if (WSConstants.WSS_SAML_KI_VALUE_TYPE.equals(customEKTokenValueType)) {
                         secToken.addTokenType(WSConstants.WSS_SAML_TOKEN_TYPE);
                         refCust.setValueType(customEKTokenValueType);
@@ -621,7 +620,7 @@ public class WSSecEncryptedKey extends W
                     break;
 
                 case WSConstants.CUSTOM_SYMM_SIGNING_DIRECT :
-                    Reference refCustd = new Reference(document);
+                    Reference refCustd = new Reference(getDocument());
                     if (WSConstants.WSS_SAML_KI_VALUE_TYPE.equals(customEKTokenValueType)) {
                         secToken.addTokenType(WSConstants.WSS_SAML_TOKEN_TYPE);
                         refCustd.setValueType(customEKTokenValueType);
@@ -654,7 +653,7 @@ public class WSSecEncryptedKey extends W
                     throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "unsupportedKeyId");
             }
             Element keyInfoElement =
-                document.createElementNS(
+                getDocument().createElementNS(
                     WSConstants.SIG_NS, WSConstants.SIG_PREFIX + ":" + WSConstants.KEYINFO_LN
                 );
             keyInfoElement.setAttributeNS(
@@ -664,14 +663,14 @@ public class WSSecEncryptedKey extends W
             encryptedKeyElement.appendChild(keyInfoElement);
         }
 
-        Element xencCipherValue = createCipherValue(document, encryptedKeyElement);
+        Element xencCipherValue = createCipherValue(getDocument(), encryptedKeyElement);
         if (storeBytesInAttachment) {
-            final String attachmentId = getIdAllocator().createId("", document);
-            WSSecurityUtil.storeBytesInAttachment(xencCipherValue, document, attachmentId,
+            final String attachmentId = getIdAllocator().createId("", getDocument());
+            WSSecurityUtil.storeBytesInAttachment(xencCipherValue, getDocument(), attachmentId,
                                                   encryptedEphemeralKey, attachmentCallbackHandler);
         } else {
             Text keyText =
-                WSSecurityUtil.createBase64EncodedTextNode(document, encryptedEphemeralKey);
+                WSSecurityUtil.createBase64EncodedTextNode(getDocument(), encryptedEphemeralKey);
             xencCipherValue.appendChild(keyText);
         }
     }
@@ -680,7 +679,7 @@ public class WSSecEncryptedKey extends W
      * Add a BinarySecurityToken
      */
     private void addBST(X509Certificate cert) throws WSSecurityException {
-        bstToken = new X509Security(document);
+        bstToken = new X509Security(getDocument());
         ((X509Security) bstToken).setX509Certificate(cert);
 
         bstAddedToSecurityHeader = false;
@@ -877,13 +876,6 @@ public class WSSecEncryptedKey extends W
     }
 
     /**
-     * @param document The document to set.
-     */
-    public void setDocument(Document document) {
-        this.document = document;
-    }
-
-    /**
      * @param encKeyId The encKeyId to set.
      */
     public void setEncKeyId(String encKeyId) {

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSAMLToken.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSAMLToken.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSAMLToken.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSAMLToken.java Fri Nov 25 12:31:19 2016
@@ -35,8 +35,6 @@ public class WSSecSAMLToken extends WSSe
     private static final org.slf4j.Logger LOG =
         org.slf4j.LoggerFactory.getLogger(WSSecSAMLToken.class);
 
-    private Document document;
-
     private SamlAssertionWrapper saml;
 
     private Element samlElement;
@@ -44,6 +42,10 @@ public class WSSecSAMLToken extends WSSe
     public WSSecSAMLToken(WSSecHeader securityHeader) {
         super(securityHeader);
     }
+    
+    public WSSecSAMLToken(Document doc) {
+        super(doc);
+    }
 
     /**
      * Creates a SAML token.
@@ -53,12 +55,8 @@ public class WSSecSAMLToken extends WSSe
      * <code>prepare()</code> all parameters such as user, password,
      * passwordType etc. must be set. A complete <code>UsernameToken</code> is
      * constructed.
-     *
-     * @param doc
-     *            The SOAP envelope as W3C document
      */
-    public void prepare(Document doc, SamlAssertionWrapper samlAssertion) {
-        document = doc;
+    public void prepare(SamlAssertionWrapper samlAssertion) {
         saml = samlAssertion;
     }
 
@@ -90,7 +88,7 @@ public class WSSecSAMLToken extends WSSe
         if (saml == null) {
             return null;
         }
-        samlElement = saml.toDOM(document);
+        samlElement = saml.toDOM(getDocument());
         return samlElement;
     }
 
@@ -115,16 +113,15 @@ public class WSSecSAMLToken extends WSSe
      * A complete <code>SAMLAssertion</code> is added to the
      * <code>wsse:Security</code> header.
      *
-     * @param doc      The SOAP envelope as W3C document
      * @param samlAssertion TODO
      * @return Document with UsernameToken added
      */
-    public Document build(Document doc, SamlAssertionWrapper samlAssertion) {
+    public Document build(SamlAssertionWrapper samlAssertion) {
         LOG.debug("Begin add SAMLAssertion token...");
 
-        prepare(doc, samlAssertion);
+        prepare(samlAssertion);
         prependToHeader();
 
-        return doc;
+        return getDocument();
     }
 }

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSecurityContextToken.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSecurityContextToken.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSecurityContextToken.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSecurityContextToken.java Fri Nov 25 12:31:19 2016
@@ -59,13 +59,25 @@ public class WSSecSecurityContextToken {
     private int wscVersion = ConversationConstants.DEFAULT_VERSION;
     private WSSConfig wssConfig;
     private final WSSecHeader securityHeader;
+    private final Document doc;
 
     public WSSecSecurityContextToken(WSSecHeader securityHeader, WSSConfig config) {
         this.securityHeader = securityHeader;
+        if (securityHeader != null && securityHeader.getSecurityHeaderElement() != null) {
+            doc = securityHeader.getSecurityHeaderElement().getOwnerDocument();
+        } else {
+            doc = null;
+        }
+        wssConfig = config;
+    }
+    
+    public WSSecSecurityContextToken(Document doc, WSSConfig config) {
+        this.securityHeader = null;
+        this.doc = doc;
         wssConfig = config;
     }
 
-    public void prepare(Document doc, Crypto crypto) throws WSSecurityException {
+    public void prepare(Crypto crypto) throws WSSecurityException {
 
         if (sct == null) {
             if (identifier != null) {
@@ -83,7 +95,7 @@ public class WSSecSecurityContextToken {
         sct.setID(sctId);
     }
 
-    public void prependSCTElementToHeader(Document doc)
+    public void prependSCTElementToHeader()
         throws WSSecurityException {
         Element secHeaderElement = securityHeader.getSecurityHeaderElement();
         WSSecurityUtil.prependChildElement(secHeaderElement, sct.getElement());

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignature.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignature.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignature.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignature.java Fri Nov 25 12:31:19 2016
@@ -84,7 +84,6 @@ public class WSSecSignature extends WSSe
     protected CanonicalizationMethod c14nMethod;
     protected XMLSignature sig;
     protected byte[] secretKey;
-    protected Document document;
     protected WSDocInfo wsDocInfo;
     protected String strUri;
     protected Element bstToken;
@@ -111,6 +110,11 @@ public class WSSecSignature extends WSSe
         super(securityHeader);
         init();
     }
+    
+    public WSSecSignature(Document doc) {
+        super(doc);
+        init();
+    }
 
     private void init() {
         // Try to install the Santuario Provider - fall back to the JDK provider if this does
@@ -132,19 +136,17 @@ public class WSSecSignature extends WSSe
      * This method does not add the Signature element to the security header.
      * See <code>prependSignatureElementToHeader()</code> method.
      *
-     * @param doc The SOAP envelope as <code>Document</code>
      * @param cr An instance of the Crypto API to handle keystore and certificates
      * @throws WSSecurityException
      */
-    public void prepare(Document doc, Crypto cr)
+    public void prepare(Crypto cr)
         throws WSSecurityException {
         //
         // Gather some info about the document to process and store it for
         // retrieval
         //
         crypto = cr;
-        document = doc;
-        wsDocInfo = new WSDocInfo(doc);
+        wsDocInfo = new WSDocInfo(getDocument());
         wsDocInfo.setCrypto(cr);
 
         //
@@ -171,7 +173,7 @@ public class WSSecSignature extends WSSe
 
         keyInfoUri = getIdAllocator().createSecureId("KI-", keyInfo);
         if (!useCustomSecRef) {
-            secRef = new SecurityTokenReference(doc);
+            secRef = new SecurityTokenReference(getDocument());
             strUri = getIdAllocator().createSecureId("STR-", secRef);
             secRef.addWSSENamespace();
             secRef.addWSUNamespace();
@@ -186,7 +188,7 @@ public class WSSecSignature extends WSSe
             //
             switch (keyIdentifierType) {
             case WSConstants.BST_DIRECT_REFERENCE:
-                Reference ref = new Reference(document);
+                Reference ref = new Reference(getDocument());
                 ref.setURI("#" + certUri);
 
                 addBST(certs);
@@ -203,8 +205,8 @@ public class WSSecSignature extends WSSe
                 String issuer = certs[0].getIssuerX500Principal().getName();
                 java.math.BigInteger serialNumber = certs[0].getSerialNumber();
                 DOMX509IssuerSerial domIssuerSerial =
-                    new DOMX509IssuerSerial(doc, issuer, serialNumber);
-                DOMX509Data domX509Data = new DOMX509Data(doc, domIssuerSerial);
+                    new DOMX509IssuerSerial(getDocument(), issuer, serialNumber);
+                DOMX509Data domX509Data = new DOMX509Data(getDocument(), domIssuerSerial);
                 secRef.setUnknownElement(domX509Data.getElement());
 
                 if (includeSignatureToken) {
@@ -243,7 +245,7 @@ public class WSSecSignature extends WSSe
                 break;
 
             case WSConstants.CUSTOM_SYMM_SIGNING :
-                Reference refCust = new Reference(document);
+                Reference refCust = new Reference(getDocument());
                 if (WSConstants.WSS_SAML_KI_VALUE_TYPE.equals(customTokenValueType)) {
                     secRef.addTokenType(WSConstants.WSS_SAML_TOKEN_TYPE);
                     refCust.setValueType(customTokenValueType);
@@ -263,7 +265,7 @@ public class WSSecSignature extends WSSe
                 break;
 
             case WSConstants.CUSTOM_SYMM_SIGNING_DIRECT :
-                Reference refCustd = new Reference(document);
+                Reference refCustd = new Reference(getDocument());
                 if (WSConstants.WSS_SAML_KI_VALUE_TYPE.equals(customTokenValueType)) {
                     secRef.addTokenType(WSConstants.WSS_SAML_TOKEN_TYPE);
                     refCustd.setValueType(customTokenValueType);
@@ -342,12 +344,11 @@ public class WSSecSignature extends WSSe
      * creates a Signature and puts it into the Security header. It does so by
      * calling the single functions in order to perform a <i>one shot signature</i>.
      *
-     * @param doc The unsigned SOAP envelope as <code>Document</code>
      * @param cr An instance of the Crypto API to handle keystore and certificates
      * @return A signed SOAP envelope as <code>Document</code>
      * @throws WSSecurityException
      */
-    public Document build(Document doc, Crypto cr)
+    public Document build(Crypto cr)
         throws WSSecurityException {
         doDebug = LOG.isDebugEnabled();
 
@@ -355,9 +356,9 @@ public class WSSecSignature extends WSSe
             LOG.debug("Beginning signing...");
         }
 
-        prepare(doc, cr);
+        prepare(cr);
         if (getParts().isEmpty()) {
-            getParts().add(WSSecurityUtil.getDefaultEncryptionPart(document));
+            getParts().add(WSSecurityUtil.getDefaultEncryptionPart(getDocument()));
         } else {
             for (WSEncryptionPart part : getParts()) {
                 if (part.getId() == null && "STRTransform".equals(part.getName())) {
@@ -378,7 +379,7 @@ public class WSSecSignature extends WSSe
             prependBSTElementToHeader();
         }
 
-        return doc;
+        return getDocument();
     }
 
 
@@ -393,7 +394,7 @@ public class WSSecSignature extends WSSe
     ) throws WSSecurityException {
         return
             addReferencesToSign(
-                document,
+                getDocument(),
                 references,
                 wsDocInfo,
                 signatureFactory,
@@ -421,7 +422,7 @@ public class WSSecSignature extends WSSe
     private void addBST(X509Certificate[] certs) throws WSSecurityException {
         if (storeBytesInAttachment) {
             bstToken =
-                document.createElementNS(WSS4JConstants.WSSE_NS, "wsse:BinarySecurityToken");
+                getDocument().createElementNS(WSS4JConstants.WSSE_NS, "wsse:BinarySecurityToken");
             bstToken.setAttributeNS(null, "EncodingType", WSS4JConstants.BASE64_ENCODING);
             bstToken.setAttributeNS(WSS4JConstants.WSU_NS, WSS4JConstants.WSU_PREFIX + ":Id", certUri);
 
@@ -440,17 +441,17 @@ public class WSSecSignature extends WSSe
                 }
             }
 
-            final String attachmentId = getIdAllocator().createId("", document);
-            WSSecurityUtil.storeBytesInAttachment(bstToken, document, attachmentId,
+            final String attachmentId = getIdAllocator().createId("", getDocument());
+            WSSecurityUtil.storeBytesInAttachment(bstToken, getDocument(), attachmentId,
                                                   certBytes, attachmentCallbackHandler);
             wsDocInfo.addTokenElement(bstToken, false);
         } else {
             BinarySecurity binarySecurity = null;
             if (!useSingleCert) {
-                binarySecurity = new PKIPathSecurity(document);
+                binarySecurity = new PKIPathSecurity(getDocument());
                 ((PKIPathSecurity) binarySecurity).setX509Certificates(certs, crypto);
             } else {
-                binarySecurity = new X509Security(document);
+                binarySecurity = new X509Security(getDocument());
                 ((X509Security) binarySecurity).setX509Certificate(certs[0]);
             }
             binarySecurity.setID(certUri);

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureBase.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureBase.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureBase.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureBase.java Fri Nov 25 12:31:19 2016
@@ -60,6 +60,10 @@ public class WSSecSignatureBase extends
     public WSSecSignatureBase(WSSecHeader securityHeader) {
         super(securityHeader);
     }
+    
+    public WSSecSignatureBase(Document doc) {
+        super(doc);
+    }
 
     /**
      * This method adds references to the Signature.

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureConfirmation.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureConfirmation.java?rev=1771308&r1=1771307&r2=1771308&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureConfirmation.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureConfirmation.java Fri Nov 25 12:31:19 2016
@@ -38,6 +38,10 @@ public class WSSecSignatureConfirmation
     public WSSecSignatureConfirmation(WSSecHeader securityHeader) {
         super(securityHeader);
     }
+    
+    public WSSecSignatureConfirmation(Document doc) {
+        super(doc);
+    }
 
     /**
      * Set the Signature value to store in this SignatureConfirmation.
@@ -55,11 +59,9 @@ public class WSSecSignatureConfirmation
      * The method prepares and initializes a WSSec SignatureConfirmation structure after
      * the relevant information was set. Before calling <code>prepare()</code> the
      * filed <code>signatureValue</code> must be set
-     *
-     * @param doc The SOAP envelope as W3C document
      */
-    public void prepare(Document doc) {
-        sc = new SignatureConfirmation(doc, signatureValue);
+    public void prepare() {
+        sc = new SignatureConfirmation(getDocument(), signatureValue);
         sc.setID(getIdAllocator().createId("SC-", sc));
     }
 
@@ -82,18 +84,17 @@ public class WSSecSignatureConfirmation
      * A complete <code>SignatureConfirmation</code> is constructed and added
      * to the <code>wsse:Security</code> header.
      *
-     * @param doc The SOAP envelope as W3C document
      * @param sigVal the Signature value. This will be the content of the "Value" attribute.
      * @return Document with SignatureConfirmation added
      */
-    public Document build(Document doc, byte[] sigVal) {
+    public Document build(byte[] sigVal) {
         LOG.debug("Begin add signature confirmation...");
 
         signatureValue = sigVal;
-        prepare(doc);
+        prepare();
         prependToHeader();
 
-        return doc;
+        return getDocument();
     }
 
     /**