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 2013/06/13 14:53:04 UTC

svn commit: r1492653 - in /webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl: processor/output/EncryptedKeyOutputProcessor.java securityToken/EncryptedKeySha1SecurityTokenImpl.java

Author: coheigea
Date: Thu Jun 13 12:53:04 2013
New Revision: 1492653

URL: http://svn.apache.org/r1492653
Log:
Enabling using WSS4J with CXF + the SymmetricBinding

Modified:
    webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptedKeyOutputProcessor.java
    webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/EncryptedKeySha1SecurityTokenImpl.java

Modified: webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptedKeyOutputProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptedKeyOutputProcessor.java?rev=1492653&r1=1492652&r2=1492653&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptedKeyOutputProcessor.java (original)
+++ webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptedKeyOutputProcessor.java Thu Jun 13 12:53:04 2013
@@ -19,6 +19,8 @@
 package org.apache.wss4j.stax.impl.processor.output;
 
 import org.apache.commons.codec.binary.Base64;
+import org.apache.wss4j.common.ext.WSPasswordCallback;
+import org.apache.wss4j.common.ext.WSPasswordCallback.Usage;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.stax.ext.WSSConstants;
 import org.apache.wss4j.stax.ext.WSSSecurityProperties;
@@ -40,8 +42,12 @@ import javax.crypto.KeyGenerator;
 import javax.crypto.NoSuchPaddingException;
 import javax.crypto.spec.OAEPParameterSpec;
 import javax.crypto.spec.PSource;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.UnsupportedCallbackException;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
+
+import java.io.IOException;
 import java.security.InvalidAlgorithmParameterException;
 import java.security.InvalidKeyException;
 import java.security.Key;
@@ -303,6 +309,20 @@ public class EncryptedKeyOutputProcessor
                         );
                     }
                     byte[] encryptedEphemeralKey = cipher.wrap(secretKey);
+                    
+                    if (((WSSSecurityProperties)getSecurityProperties()).getCallbackHandler() != null) {
+                        // Store the Encrypted Key in the CallbackHandler for processing on the inbound side
+                        WSPasswordCallback callback = 
+                            new WSPasswordCallback(securityToken.getId(), Usage.ENCRYPTED_KEY_TOKEN);
+                        callback.setKey(encryptedEphemeralKey);
+                        try {
+                            ((WSSSecurityProperties)getSecurityProperties()).getCallbackHandler().handle(new Callback[]{callback});
+                        } catch (IOException e) { // NOPMD
+                            // Do nothing
+                        } catch (UnsupportedCallbackException e) { // NOPMD
+                            // Do nothing
+                        }
+                    }
 
                     createCharactersAndOutputAsEvent(subOutputProcessorChain, new Base64(76, new byte[]{'\n'}).encodeToString(encryptedEphemeralKey));
 

Modified: webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/EncryptedKeySha1SecurityTokenImpl.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/EncryptedKeySha1SecurityTokenImpl.java?rev=1492653&r1=1492652&r2=1492653&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/EncryptedKeySha1SecurityTokenImpl.java (original)
+++ webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/EncryptedKeySha1SecurityTokenImpl.java Thu Jun 13 12:53:04 2013
@@ -65,7 +65,7 @@ public class EncryptedKeySha1SecurityTok
         }
 
         WSPasswordCallback secretKeyCallback =
-                new WSPasswordCallback(getId(), null,
+                new WSPasswordCallback(sha1Identifier, null,
                         WSSConstants.NS_ENCRYPTED_KEY_SHA1, WSPasswordCallback.Usage.SECRET_KEY);
         WSSUtils.doSecretKeyCallback(callbackHandler, secretKeyCallback, sha1Identifier);
         if (secretKeyCallback.getKey() == null) {