Author: coheigea
Date: Wed Oct 16 10:43:56 2013
New Revision: 1532710

URL: http://svn.apache.org/r1532710
Log:
Fixed some referencing problems with security tokens

Modified:
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/WSSSignatureEndingOutputProcessor.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=1532710&r1=1532709&r2=1532710&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
 Wed Oct 16 10:43:56 2013
@@ -254,6 +254,11 @@ public class EncryptOutputProcessor exte
                     
attributes.add(createAttribute(WSSConstants.ATT_wsse11_TokenType, 
WSSConstants.NS_SAML20_TOKEN_PROFILE_TYPE));
                     createStartElementAndOutputAsEvent(outputProcessorChain, 
WSSConstants.TAG_wsse_SecurityTokenReference, false, attributes);
                     isSAMLToken = true;
+                } else if 
(WSSecurityTokenConstants.EncryptedKeyToken.equals(tokenType)) {
+                    List<XMLSecAttribute> attributes = new 
ArrayList<XMLSecAttribute>(2);
+                    attributes.add(createAttribute(WSSConstants.ATT_wsu_Id, 
IDGenerator.generateID(null)));
+                    
attributes.add(createAttribute(WSSConstants.ATT_wsse11_TokenType, 
WSSConstants.NS_WSS_ENC_KEY_VALUE_TYPE));
+                    createStartElementAndOutputAsEvent(outputProcessorChain, 
WSSConstants.TAG_wsse_SecurityTokenReference, false, attributes);
                 } else {
                     createStartElementAndOutputAsEvent(outputProcessorChain, 
WSSConstants.TAG_wsse_SecurityTokenReference, true, null);
                 }
@@ -282,7 +287,9 @@ public class EncryptOutputProcessor exte
                         } else {
                             
attributes.add(createAttribute(WSSConstants.ATT_NULL_ValueType, 
WSSConstants.NS_WSC_05_12 + "/sct"));
                         }
-                    } 
+                    } else if 
(WSSecurityTokenConstants.EncryptedKeyToken.equals(tokenType)) {
+                        
attributes.add(createAttribute(WSSConstants.ATT_NULL_ValueType, 
WSSConstants.NS_WSS_ENC_KEY_VALUE_TYPE));
+                    }
                     createStartElementAndOutputAsEvent(outputProcessorChain, 
WSSConstants.TAG_wsse_Reference, false, attributes);
                     createEndElementAndOutputAsEvent(outputProcessorChain, 
WSSConstants.TAG_wsse_Reference);
                 }

Modified: 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/WSSSignatureEndingOutputProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/WSSSignatureEndingOutputProcessor.java?rev=1532710&r1=1532709&r2=1532710&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/WSSSignatureEndingOutputProcessor.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/WSSSignatureEndingOutputProcessor.java
 Wed Oct 16 10:43:56 2013
@@ -106,12 +106,13 @@ public class WSSSignatureEndingOutputPro
                 isSAMLToken = true;
             } else if 
(WSSecurityTokenConstants.KerberosToken.equals(securityToken.getTokenType())) {
                 
attributes.add(createAttribute(WSSConstants.ATT_wsse11_TokenType, 
WSSConstants.NS_GSS_Kerberos5_AP_REQ));
-            } else if 
(WSSecurityTokenConstants.KeyIdentifier_SecurityTokenDirectReference.equals(keyIdentifier)
 && !useSingleCertificate) {
-                
attributes.add(createAttribute(WSSConstants.ATT_wsse11_TokenType, 
WSSConstants.NS_X509PKIPathv1));
-            } else if 
(WSSecurityTokenConstants.KeyIdentifier_EncryptedKeySha1Identifier.equals(keyIdentifier)
+            } else if 
(WSSecurityTokenConstants.EncryptedKeyToken.equals(securityToken.getTokenType())
+                || 
WSSecurityTokenConstants.KeyIdentifier_EncryptedKeySha1Identifier.equals(keyIdentifier)
                 || 
WSSecurityTokenConstants.KeyIdentifier_EncryptedKey.equals(keyIdentifier)) {
                 
attributes.add(createAttribute(WSSConstants.ATT_wsse11_TokenType, 
WSSConstants.NS_WSS_ENC_KEY_VALUE_TYPE));
-            }
+            } else if 
(WSSecurityTokenConstants.KeyIdentifier_SecurityTokenDirectReference.equals(keyIdentifier)
 && !useSingleCertificate) {
+                
attributes.add(createAttribute(WSSConstants.ATT_wsse11_TokenType, 
WSSConstants.NS_X509PKIPathv1));
+            } 
             createStartElementAndOutputAsEvent(outputProcessorChain, 
WSSConstants.TAG_wsse_SecurityTokenReference, false, attributes);
 
             String tokenId = securityToken.getId();
@@ -119,14 +120,6 @@ public class WSSSignatureEndingOutputPro
             if (isSAMLToken) {
                 // Always use KeyIdentifier regardless of the configured 
KeyIdentifier value
                 WSSUtils.createSAMLKeyIdentifierStructure(this, 
outputProcessorChain, securityToken.getTokenType(), tokenId);
-            } else if 
(WSSecurityTokenConstants.KeyIdentifier_IssuerSerial.equals(keyIdentifier)) {
-                WSSUtils.createX509IssuerSerialStructure(this, 
outputProcessorChain, x509Certificates);
-            } else if 
(WSSecurityTokenConstants.KeyIdentifier_SkiKeyIdentifier.equals(keyIdentifier)) 
{
-                WSSUtils.createX509SubjectKeyIdentifierStructure(this, 
outputProcessorChain, x509Certificates);
-            } else if 
(WSSecurityTokenConstants.KeyIdentifier_X509KeyIdentifier.equals(keyIdentifier))
 {
-                WSSUtils.createX509KeyIdentifierStructure(this, 
outputProcessorChain, x509Certificates);
-            } else if 
(WSSecurityTokenConstants.KeyIdentifier_ThumbprintIdentifier.equals(keyIdentifier))
 {
-                WSSUtils.createThumbprintKeyIdentifierStructure(this, 
outputProcessorChain, x509Certificates);
             } else if 
(WSSecurityTokenConstants.KeyIdentifier_EncryptedKeySha1Identifier.equals(keyIdentifier))
 {
                 String identifier = securityToken.getSha1Identifier();
                 if (identifier != null) {
@@ -138,9 +131,18 @@ public class WSSSignatureEndingOutputPro
             } else if 
(WSSecurityTokenConstants.KeyIdentifier_KerberosSha1Identifier.equals(keyIdentifier))
 {
                 String identifier = securityToken.getSha1Identifier();
                 WSSUtils.createKerberosSha1IdentifierStructure(this, 
outputProcessorChain, identifier);
-            } else if 
(WSSecurityTokenConstants.KeyIdentifier_EncryptedKey.equals(keyIdentifier)) {
+            } else if 
(WSSecurityTokenConstants.EncryptedKeyToken.equals(securityToken.getTokenType())
+                || 
WSSecurityTokenConstants.KeyIdentifier_EncryptedKey.equals(keyIdentifier)) {
                 String id = securityToken.getId();
                 WSSUtils.createBSTReferenceStructure(this, 
outputProcessorChain, id, WSSConstants.NS_WSS_ENC_KEY_VALUE_TYPE);
+            } else if 
(WSSecurityTokenConstants.KeyIdentifier_IssuerSerial.equals(keyIdentifier)) {
+                WSSUtils.createX509IssuerSerialStructure(this, 
outputProcessorChain, x509Certificates);
+            } else if 
(WSSecurityTokenConstants.KeyIdentifier_SkiKeyIdentifier.equals(keyIdentifier)) 
{
+                WSSUtils.createX509SubjectKeyIdentifierStructure(this, 
outputProcessorChain, x509Certificates);
+            } else if 
(WSSecurityTokenConstants.KeyIdentifier_X509KeyIdentifier.equals(keyIdentifier))
 {
+                WSSUtils.createX509KeyIdentifierStructure(this, 
outputProcessorChain, x509Certificates);
+            } else if 
(WSSecurityTokenConstants.KeyIdentifier_ThumbprintIdentifier.equals(keyIdentifier))
 {
+                WSSUtils.createThumbprintKeyIdentifierStructure(this, 
outputProcessorChain, x509Certificates);
             } else if 
(WSSecurityTokenConstants.KeyIdentifier_SecurityTokenDirectReference.equals(keyIdentifier))
 {
                 String valueType;
                 if 
(WSSecurityTokenConstants.Saml20Token.equals(securityToken.getTokenType())) {


Reply via email to