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