Use the symmetric key to create the encode bytes for the rahas token
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java b/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java
index 007a128..8f425cf 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java
@@ -908,7 +908,15 @@
*/
private void createEncryptedKey(RampartMessageData rmd, Token token) throws RampartException {
//Set up the encrypted key to use
- encrKey = this.getEncryptedKeyBuilder(rmd, token);
+ KeyGenerator keyGen;
+ try {
+ keyGen = KeyUtils.getKeyGenerator(WSConstants.AES_128);
+ } catch (WSSecurityException e) {
+ e.printStackTrace();
+ return;
+ }
+ SecretKey symmetricKey = keyGen.generateKey();
+ encrKey = this.getEncryptedKeyBuilder(rmd, token, symmetricKey);
Element bstElem = encrKey.getBinarySecurityTokenElement();
if (bstElem != null) {
@@ -920,7 +928,7 @@
encrTokenElement = encrKey.getEncryptedKeyElement();
this.encrTokenElement = RampartUtil.appendChildToSecHeader(rmd,
encrTokenElement);
- encryptedKeyValue = encrKey.getEncryptedKeySHA1().getBytes();
+ encryptedKeyValue = symmetricKey.getEncoded();
encryptedKeyId = encrKey.getId();
//Store the token for client - response verification