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");