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) {


Reply via email to