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 2014/02/25 11:57:16 UTC

svn commit: r1571645 - /webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java

Author: coheigea
Date: Tue Feb 25 10:57:15 2014
New Revision: 1571645

URL: http://svn.apache.org/r1571645
Log:
Add support to be able to sign an already encrypted token

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

Modified: webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java?rev=1571645&r1=1571644&r2=1571645&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java (original)
+++ webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java Tue Feb 25 10:57:15 2014
@@ -97,6 +97,19 @@ public class EncryptOutputProcessor exte
                     encryptionPartDef.setSecurePart(securePart);
                     encryptionPartDef.setModifier(securePart.getModifier());
                     encryptionPartDef.setEncRefId(IDGenerator.generateID(null));
+                    
+                    Map<Object, SecurePart> dynamicSecureParts = 
+                        outputProcessorChain.getSecurityContext().getAsMap(WSSConstants.SIGNATURE_PARTS);
+                    if (dynamicSecureParts != null && securePart.getName() != null
+                        && securePart.equals(dynamicSecureParts.get(securePart.getName()))) {
+                        securePart.setIdToSign(encryptionPartDef.getEncRefId());
+                        outputProcessorChain.getSecurityContext().putAsMap(
+                            WSSConstants.SIGNATURE_PARTS,
+                            securePart.getIdToSign(),
+                            securePart
+                        );
+                    }
+                    
                     encryptionPartDef.setKeyId(securityTokenProvider.getId());
                     encryptionPartDef.setSymmetricKey(securityToken.getSecretKey(getSecurityProperties().getEncryptionSymAlgorithm()));
                     outputProcessorChain.getSecurityContext().putAsList(EncryptionPartDef.class, encryptionPartDef);