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())) {