You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2014/04/07 07:18:36 UTC
svn commit: r1585387 - in
/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax:
ext/OutboundWSSec.java
impl/processor/output/BinarySecurityTokenOutputProcessor.java
impl/processor/output/SAMLTokenOutputProcessor.java
Author: coheigea
Date: Mon Apr 7 05:18:36 2014
New Revision: 1585387
URL: http://svn.apache.org/r1585387
Log:
Not outputting BinarySecurityToken for Signature in certain scenarios.
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/OutboundWSSec.java
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/BinarySecurityTokenOutputProcessor.java
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/SAMLTokenOutputProcessor.java
Modified: webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/OutboundWSSec.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/OutboundWSSec.java?rev=1585387&r1=1585386&r2=1585387&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/OutboundWSSec.java (original)
+++ webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/OutboundWSSec.java Mon Apr 7 05:18:36 2014
@@ -285,6 +285,10 @@ public class OutboundWSSec {
} else if (WSSConstants.SAML_TOKEN_SIGNED.equals(action)) {
signatureAction = true;
signedSAML = true;
+ final BinarySecurityTokenOutputProcessor binarySecurityTokenOutputProcessor =
+ new BinarySecurityTokenOutputProcessor();
+ initializeOutputProcessor(outputProcessorChain, binarySecurityTokenOutputProcessor, action);
+
final SAMLTokenOutputProcessor samlTokenOutputProcessor = new SAMLTokenOutputProcessor();
initializeOutputProcessor(outputProcessorChain, samlTokenOutputProcessor, action);
Modified: webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/BinarySecurityTokenOutputProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/BinarySecurityTokenOutputProcessor.java?rev=1585387&r1=1585386&r2=1585387&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/BinarySecurityTokenOutputProcessor.java (original)
+++ webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/BinarySecurityTokenOutputProcessor.java Mon Apr 7 05:18:36 2014
@@ -85,7 +85,7 @@ public class BinarySecurityTokenOutputPr
}
if (securityToken != null) {
- if ((WSSConstants.SIGNATURE.equals(action) || WSSConstants.SAML_TOKEN_SIGNED.equals(action))
+ if (WSSConstants.SIGNATURE.equals(action)
&& (includeToken || WSSecurityTokenConstants.KeyIdentifier_SecurityTokenDirectReference.equals(keyIdentifier))
&& (securityToken.getTokenType() == null || WSSecurityTokenConstants.X509V3Token.equals(securityToken.getTokenType()))) {
FinalBinarySecurityTokenOutputProcessor finalBinarySecurityTokenOutputProcessor = new FinalBinarySecurityTokenOutputProcessor(securityToken);
@@ -94,6 +94,14 @@ public class BinarySecurityTokenOutputPr
finalBinarySecurityTokenOutputProcessor.addBeforeProcessor(WSSSignatureOutputProcessor.class.getName());
finalBinarySecurityTokenOutputProcessor.init(outputProcessorChain);
securityToken.setProcessor(finalBinarySecurityTokenOutputProcessor);
+ } else if (WSSConstants.SAML_TOKEN_SIGNED.equals(action) && includeToken
+ && (securityToken.getTokenType() == null || WSSecurityTokenConstants.X509V3Token.equals(securityToken.getTokenType()))) {
+ FinalBinarySecurityTokenOutputProcessor finalBinarySecurityTokenOutputProcessor = new FinalBinarySecurityTokenOutputProcessor(securityToken);
+ finalBinarySecurityTokenOutputProcessor.setXMLSecurityProperties(getSecurityProperties());
+ finalBinarySecurityTokenOutputProcessor.setAction(getAction());
+ finalBinarySecurityTokenOutputProcessor.addBeforeProcessor(WSSSignatureOutputProcessor.class.getName());
+ finalBinarySecurityTokenOutputProcessor.init(outputProcessorChain);
+ securityToken.setProcessor(finalBinarySecurityTokenOutputProcessor);
} else if (WSSConstants.ENCRYPT.equals(action)
&& (includeToken || WSSecurityTokenConstants.KeyIdentifier_SecurityTokenDirectReference.equals(keyIdentifier))
&& (securityToken.getTokenType() == null || WSSecurityTokenConstants.X509V3Token.equals(securityToken.getTokenType()))) {
Modified: webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/SAMLTokenOutputProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/SAMLTokenOutputProcessor.java?rev=1585387&r1=1585386&r2=1585387&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/SAMLTokenOutputProcessor.java (original)
+++ webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/SAMLTokenOutputProcessor.java Mon Apr 7 05:18:36 2014
@@ -386,9 +386,7 @@ public class SAMLTokenOutputProcessor ex
if (WSSUtils.isSecurityHeaderElement(xmlSecEvent, ((WSSSecurityProperties) getSecurityProperties()).getActor())) {
OutputProcessorChain subOutputProcessorChain = outputProcessorChain.createSubChain(this);
- if (senderVouches && getSecurityProperties().getSignatureKeyIdentifier() ==
- WSSecurityTokenConstants.KeyIdentifier_SecurityTokenDirectReference
- && securityToken != null) {
+ if (includeBST()) {
WSSUtils.updateSecurityHeaderOrder(
outputProcessorChain, WSSConstants.TAG_wsse_BinarySecurityToken, getAction(), false);
@@ -415,6 +413,17 @@ public class SAMLTokenOutputProcessor ex
outputProcessorChain.removeProcessor(this);
}
}
+
+ private boolean includeBST() {
+ if (senderVouches && getSecurityProperties().getSignatureKeyIdentifier() ==
+ WSSecurityTokenConstants.KeyIdentifier_SecurityTokenDirectReference
+ && securityToken != null
+ && !(WSSConstants.SAML_TOKEN_SIGNED.equals(action)
+ && ((WSSSecurityProperties)getSecurityProperties()).isIncludeSignatureToken())) {
+ return true;
+ }
+ return false;
+ }
}
private void outputSecurityTokenReference(