Author: coheigea
Date: Thu Oct 17 13:21:56 2013
New Revision: 1533071
URL: http://svn.apache.org/r1533071
Log:
An update to use an absolute reference in some use-cases
Modified:
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/DerivedKeyTokenOutputProcessor.java
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptedKeyOutputProcessor.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/validate/SecurityContextTokenValidatorImpl.java
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=1533071&r1=1533070&r2=1533071&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
Thu Oct 17 13:21:56 2013
@@ -371,10 +371,11 @@ public class WSSUtils extends XMLSecurit
public static void createBSTReferenceStructure(AbstractOutputProcessor
abstractOutputProcessor,
OutputProcessorChain
outputProcessorChain, String referenceId,
- String valueType)
+ String valueType, boolean
includedInMessage)
throws XMLStreamException, XMLSecurityException {
List<XMLSecAttribute> attributes = new ArrayList<XMLSecAttribute>(2);
-
attributes.add(abstractOutputProcessor.createAttribute(WSSConstants.ATT_NULL_URI,
"#" + referenceId));
+ String uri = includedInMessage ? "#" + referenceId : referenceId;
+
attributes.add(abstractOutputProcessor.createAttribute(WSSConstants.ATT_NULL_URI,
uri));
if (valueType != null) {
attributes.add(abstractOutputProcessor.createAttribute(WSSConstants.ATT_NULL_ValueType,
valueType));
}
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/DerivedKeyTokenOutputProcessor.java
URL:
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/DerivedKeyTokenOutputProcessor.java?rev=1533071&r1=1533070&r2=1533071&view=diff
==============================================================================
---
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/DerivedKeyTokenOutputProcessor.java
(original)
+++
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/DerivedKeyTokenOutputProcessor.java
Thu Oct 17 13:21:56 2013
@@ -275,7 +275,7 @@ public class DerivedKeyTokenOutputProces
if (derivedKeyTokenReference ==
WSSConstants.DerivedKeyTokenReference.EncryptedKey) {
String valueType = WSSConstants.NS_WSS_ENC_KEY_VALUE_TYPE;
- WSSUtils.createBSTReferenceStructure(this,
outputProcessorChain, tokenId, valueType);
+ WSSUtils.createBSTReferenceStructure(this,
outputProcessorChain, tokenId, valueType, true);
} else if
(WSSecurityTokenConstants.KeyIdentifier_IssuerSerial.equals(keyIdentifier)) {
WSSUtils.createX509IssuerSerialStructure(this,
outputProcessorChain, x509Certificates);
} else if
(WSSecurityTokenConstants.KeyIdentifier_SkiKeyIdentifier.equals(keyIdentifier))
{
@@ -296,7 +296,8 @@ public class DerivedKeyTokenOutputProces
} else {
valueType = WSSConstants.NS_X509PKIPathv1;
}
- WSSUtils.createBSTReferenceStructure(this,
outputProcessorChain, tokenId, valueType);
+ boolean included =
((WSSSecurityProperties)getSecurityProperties()).isIncludeSignatureToken();
+ WSSUtils.createBSTReferenceStructure(this,
outputProcessorChain, tokenId, valueType, included);
} else if
(WSSecurityTokenConstants.KeyIdentifier_EncryptedKeySha1Identifier.equals(keyIdentifier))
{
WSSUtils.createEncryptedKeySha1IdentifierStructure(this,
outputProcessorChain, sha1Identifier);
} else {
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptedKeyOutputProcessor.java
URL:
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptedKeyOutputProcessor.java?rev=1533071&r1=1533070&r2=1533071&view=diff
==============================================================================
---
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptedKeyOutputProcessor.java
(original)
+++
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptedKeyOutputProcessor.java
Thu Oct 17 13:21:56 2013
@@ -339,7 +339,7 @@ public class EncryptedKeyOutputProcessor
} else {
valueType = WSSConstants.NS_X509PKIPathv1;
}
- WSSUtils.createBSTReferenceStructure(this,
outputProcessorChain, tokenId, valueType);
+ WSSUtils.createBSTReferenceStructure(this,
outputProcessorChain, tokenId, valueType, true);
} else {
throw new
WSSecurityException(WSSecurityException.ErrorCode.FAILURE,
"unsupportedSecurityToken");
}
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=1533071&r1=1533070&r2=1533071&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
Thu Oct 17 13:21:56 2013
@@ -134,7 +134,7 @@ public class WSSSignatureEndingOutputPro
} 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);
+ WSSUtils.createBSTReferenceStructure(this,
outputProcessorChain, id, WSSConstants.NS_WSS_ENC_KEY_VALUE_TYPE, true);
} else if
(WSSecurityTokenConstants.KeyIdentifier_IssuerSerial.equals(keyIdentifier)) {
WSSUtils.createX509IssuerSerialStructure(this,
outputProcessorChain, x509Certificates);
} else if
(WSSecurityTokenConstants.KeyIdentifier_SkiKeyIdentifier.equals(keyIdentifier))
{
@@ -145,6 +145,7 @@ public class WSSSignatureEndingOutputPro
WSSUtils.createThumbprintKeyIdentifierStructure(this,
outputProcessorChain, x509Certificates);
} else if
(WSSecurityTokenConstants.KeyIdentifier_SecurityTokenDirectReference.equals(keyIdentifier))
{
String valueType;
+ boolean included = true;
if
(WSSecurityTokenConstants.Saml20Token.equals(securityToken.getTokenType())) {
valueType = null;
} else if
(WSSecurityTokenConstants.KerberosToken.equals(securityToken.getTokenType())) {
@@ -156,6 +157,7 @@ public class WSSSignatureEndingOutputPro
} else {
valueType = WSSConstants.NS_WSC_05_02 + "/dk";
}
+ included =
((WSSSecurityProperties)getSecurityProperties()).isIncludeSignatureToken();
} else if
(WSSecurityTokenConstants.SpnegoContextToken.equals(securityToken.getTokenType())
||
WSSecurityTokenConstants.SecurityContextToken.equals(securityToken.getTokenType())
||
WSSecurityTokenConstants.SecureConversationToken.equals(securityToken.getTokenType()))
{
@@ -165,6 +167,7 @@ public class WSSSignatureEndingOutputPro
} else {
valueType = WSSConstants.NS_WSC_05_02 + "/sct";
}
+ included =
((WSSSecurityProperties)getSecurityProperties()).isIncludeSignatureToken();
} else {
if (useSingleCertificate) {
valueType = WSSConstants.NS_X509_V3_TYPE;
@@ -172,7 +175,7 @@ public class WSSSignatureEndingOutputPro
valueType = WSSConstants.NS_X509PKIPathv1;
}
}
- WSSUtils.createBSTReferenceStructure(this,
outputProcessorChain, tokenId, valueType);
+ WSSUtils.createBSTReferenceStructure(this,
outputProcessorChain, tokenId, valueType, included);
} else if
(WSSecurityTokenConstants.KeyIdentifier_EmbeddedKeyIdentifierRef.equals(keyIdentifier))
{
WSSUtils.createEmbeddedKeyIdentifierStructure(this,
outputProcessorChain, securityToken.getTokenType(), tokenId);
} else if
(WSSecurityTokenConstants.KeyIdentifier_UsernameTokenReference.equals(keyIdentifier))
{
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SecurityContextTokenValidatorImpl.java
URL:
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SecurityContextTokenValidatorImpl.java?rev=1533071&r1=1533070&r2=1533071&view=diff
==============================================================================
---
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SecurityContextTokenValidatorImpl.java
(original)
+++
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SecurityContextTokenValidatorImpl.java
Thu Oct 17 13:21:56 2013
@@ -40,7 +40,7 @@ public class SecurityContextTokenValidat
throws WSSecurityException {
AbstractInboundSecurityToken securityContextToken = new
AbstractInboundSecurityToken(
- tokenContext.getWsSecurityContext(),
securityContextTokenType.getId(),
+ tokenContext.getWsSecurityContext(), identifier,
WSSecurityTokenConstants.KeyIdentifier_ExternalReference,
true) {
@Override