Author: coheigea
Date: Mon Jul  1 13:14:31 2013
New Revision: 1498427

URL: http://svn.apache.org/r1498427
Log:
More Kerberos-related fixes

Modified:
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ConfigurationConverter.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSUtils.java
    
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
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/securityToken/WSSecurityTokenConstants.java

Modified: 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ConfigurationConverter.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ConfigurationConverter.java?rev=1498427&r1=1498426&r2=1498427&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ConfigurationConverter.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ConfigurationConverter.java
 Mon Jul  1 13:14:31 2013
@@ -542,6 +542,8 @@ public final class ConfigurationConverte
             return WSSecurityTokenConstants.KeyIdentifier_EncryptedKey;
         } else if ("KeyValue".equals(keyIdentifier)) {
             return WSSecurityTokenConstants.KeyIdentifier_KeyValue;
+        } else if ("KerberosSHA1".equals(keyIdentifier)) {
+            return 
WSSecurityTokenConstants.KeyIdentifier_KerberosSha1Identifier;
         }
         return null;
     }

Modified: 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSUtils.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSUtils.java?rev=1498427&r1=1498426&r2=1498427&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSUtils.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSUtils.java
 Mon Jul  1 13:14:31 2013
@@ -356,6 +356,18 @@ public class WSSUtils extends XMLSecurit
         
abstractOutputProcessor.createCharactersAndOutputAsEvent(outputProcessorChain, 
identifier);
         
abstractOutputProcessor.createEndElementAndOutputAsEvent(outputProcessorChain, 
WSSConstants.TAG_wsse_KeyIdentifier);
     }
+    
+    public static void 
createKerberosSha1IdentifierStructure(AbstractOutputProcessor 
abstractOutputProcessor,
+                                                                 
OutputProcessorChain outputProcessorChain, String identifier)
+            throws XMLStreamException, XMLSecurityException {
+
+        List<XMLSecAttribute> attributes = new ArrayList<XMLSecAttribute>(2);
+        
attributes.add(abstractOutputProcessor.createAttribute(WSSConstants.ATT_NULL_EncodingType,
 WSSConstants.SOAPMESSAGE_NS10_BASE64_ENCODING));
+        
attributes.add(abstractOutputProcessor.createAttribute(WSSConstants.ATT_NULL_ValueType,
 WSSConstants.NS_Kerberos5_AP_REQ_SHA1));
+        
abstractOutputProcessor.createStartElementAndOutputAsEvent(outputProcessorChain,
 WSSConstants.TAG_wsse_KeyIdentifier, false, attributes);
+        
abstractOutputProcessor.createCharactersAndOutputAsEvent(outputProcessorChain, 
identifier);
+        
abstractOutputProcessor.createEndElementAndOutputAsEvent(outputProcessorChain, 
WSSConstants.TAG_wsse_KeyIdentifier);
+    }
 
     public static void createBSTReferenceStructure(AbstractOutputProcessor 
abstractOutputProcessor,
                                                    OutputProcessorChain 
outputProcessorChain, String referenceId,

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=1498427&r1=1498426&r2=1498427&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
 Mon Jul  1 13:14:31 2013
@@ -46,6 +46,7 @@ import org.apache.xml.security.stax.impl
 import 
org.apache.xml.security.stax.impl.processor.output.AbstractEncryptOutputProcessor;
 import org.apache.xml.security.stax.impl.util.IDGenerator;
 import org.apache.xml.security.stax.securityToken.OutboundSecurityToken;
+import 
org.apache.xml.security.stax.securityToken.SecurityTokenConstants.KeyIdentifier;
 import 
org.apache.xml.security.stax.securityToken.SecurityTokenConstants.TokenType;
 import org.apache.xml.security.stax.securityToken.SecurityTokenProvider;
 
@@ -216,8 +217,8 @@ public class EncryptOutputProcessor exte
         protected void createKeyInfoStructure(OutputProcessorChain 
outputProcessorChain) throws XMLStreamException, XMLSecurityException {
             createStartElementAndOutputAsEvent(outputProcessorChain, 
XMLSecurityConstants.TAG_dsig_KeyInfo, true, null);
 
-            if 
(WSSecurityTokenConstants.KeyIdentifier_EncryptedKeySha1Identifier.equals(
-                    ((WSSSecurityProperties) 
getSecurityProperties()).getEncryptionKeyIdentifier())) {
+            KeyIdentifier keyIdentifier = ((WSSSecurityProperties) 
getSecurityProperties()).getEncryptionKeyIdentifier();
+            if 
(WSSecurityTokenConstants.KeyIdentifier_EncryptedKeySha1Identifier.equals(keyIdentifier))
 {
                 List<XMLSecAttribute> attributes = new 
ArrayList<XMLSecAttribute>(1);
                 
attributes.add(createAttribute(WSSConstants.ATT_wsse11_TokenType, 
WSSConstants.NS_WSS_ENC_KEY_VALUE_TYPE));
                 createStartElementAndOutputAsEvent(outputProcessorChain, 
WSSConstants.TAG_wsse_SecurityTokenReference, false, attributes);
@@ -227,6 +228,12 @@ public class EncryptOutputProcessor exte
                 } else {
                     WSSUtils.createEncryptedKeySha1IdentifierStructure(this, 
outputProcessorChain, getEncryptionPartDef().getSymmetricKey());
                 }
+            } else if 
(WSSecurityTokenConstants.KeyIdentifier_KerberosSha1Identifier.equals(keyIdentifier))
 {
+                List<XMLSecAttribute> attributes = new 
ArrayList<XMLSecAttribute>(1);
+                
attributes.add(createAttribute(WSSConstants.ATT_wsse11_TokenType, 
WSSConstants.NS_Kerberos5_AP_REQ));
+                createStartElementAndOutputAsEvent(outputProcessorChain, 
WSSConstants.TAG_wsse_SecurityTokenReference, false, attributes);
+                
+                WSSUtils.createKerberosSha1IdentifierStructure(this, 
outputProcessorChain, sha1Identifier);
             } else {
                 if (WSSecurityTokenConstants.KerberosToken.equals(tokenType)) {
                     List<XMLSecAttribute> attributes = new 
ArrayList<XMLSecAttribute>(2);

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=1498427&r1=1498426&r2=1498427&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
 Mon Jul  1 13:14:31 2013
@@ -129,6 +129,9 @@ public class WSSSignatureEndingOutputPro
                     Key key = 
securityToken.getSecretKey(getSecurityProperties().getSignatureAlgorithm());
                     WSSUtils.createEncryptedKeySha1IdentifierStructure(this, 
outputProcessorChain, key);
                 }
+            } else if 
(WSSecurityTokenConstants.KeyIdentifier_KerberosSha1Identifier.equals(keyIdentifier))
 {
+                String identifier = securityToken.getSha1Identifier();
+                WSSUtils.createKerberosSha1IdentifierStructure(this, 
outputProcessorChain, identifier);
             } else if 
(WSSecurityTokenConstants.KeyIdentifier_EncryptedKey.equals(keyIdentifier)) {
                 String id = securityToken.getId();
                 WSSUtils.createBSTReferenceStructure(this, 
outputProcessorChain, id, WSSConstants.NS_WSS_ENC_KEY_VALUE_TYPE);

Modified: 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/securityToken/WSSecurityTokenConstants.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/securityToken/WSSecurityTokenConstants.java?rev=1498427&r1=1498426&r2=1498427&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/securityToken/WSSecurityTokenConstants.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/securityToken/WSSecurityTokenConstants.java
 Mon Jul  1 13:14:31 2013
@@ -37,6 +37,7 @@ public class WSSecurityTokenConstants ex
     public static final KeyIdentifier 
KeyIdentifier_SecurityTokenDirectReference = new 
KeyIdentifier("SecurityTokenDirectReference");
     public static final KeyIdentifier KeyIdentifier_ThumbprintIdentifier = new 
KeyIdentifier("ThumbprintIdentifier");
     public static final KeyIdentifier KeyIdentifier_EncryptedKeySha1Identifier 
= new KeyIdentifier("EncryptedKeySha1Identifier");
+    public static final KeyIdentifier KeyIdentifier_KerberosSha1Identifier = 
new KeyIdentifier("KerberosSha1Identifier");
     public static final KeyIdentifier KeyIdentifier_EmbeddedKeyIdentifierRef = 
new KeyIdentifier("EmbeddedKeyIdentifierRef");
     public static final KeyIdentifier KeyIdentifier_UsernameTokenReference = 
new KeyIdentifier("UsernameTokenReference");
     public static final KeyIdentifier KeyIdentifier_ExternalReference = new 
KeyIdentifier("ExternalReference");


Reply via email to