Author: prabath
Date: Tue Feb 23 03:31:14 2010
New Revision: 915159
URL: http://svn.apache.org/viewvc?rev=915159&view=rev
Log:
Fixing https://issues.apache.org/jira/browse/RAMPART-286
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/SupportingPolicyData.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Binding.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SupportingToken.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AsymmetricBindingBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedElementsBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedElementsBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AsymmetricBindingBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedElementsBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedElementsBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java
Tue Feb 23 03:31:14 2010
@@ -64,7 +64,7 @@
if(rpd != null && rpd.isIncludeTimestamp()) {
tsResult =
WSSecurityUtil.fetchActionResult(results, WSConstants.TS);
- if(tsResult == null) {
+ if(tsResult == null && !rpd.isIncludeTimestampOptional()) {
throw new RampartException("timestampMissing");
}
@@ -83,17 +83,20 @@
Vector signatureParts = RampartUtil.getSignedParts(rmd);
//Timestamp is not included in sig parts
- if(rpd != null && rpd.isIncludeTimestamp() &&
!rpd.isTransportBinding()) {
- signatureParts.add(new WSEncryptionPart("timestamp"));
- }
+ if (tsResult != null || !rpd.isIncludeTimestampOptional()) {
+ if (rpd != null && rpd.isIncludeTimestamp()
+ && !rpd.isTransportBinding()) {
+ signatureParts.add(new
WSEncryptionPart("timestamp"));
+ }
+ }
if(!rmd.isInitiator()) {
//Just an indicator for EndorsingSupportingToken signature
SupportingToken endSupportingToken =
rpd.getEndorsingSupportingTokens();
- if(endSupportingToken != null) {
+ if(endSupportingToken != null &&
!endSupportingToken.isOptional()) {
SignedEncryptedParts endSignedParts =
endSupportingToken.getSignedParts();
- if((endSignedParts != null &&
+ if((endSignedParts != null && !endSignedParts.isOptional() &&
(endSignedParts.isBody() ||
endSignedParts.getHeaders().size() > 0)) ||
rpd.isIncludeTimestamp()) {
@@ -103,9 +106,9 @@
}
//Just an indicator for SignedEndorsingSupportingToken signature
SupportingToken sgndEndSupportingToken =
rpd.getSignedEndorsingSupportingTokens();
- if(sgndEndSupportingToken != null) {
+ if(sgndEndSupportingToken != null &&
!sgndEndSupportingToken.isOptional()) {
SignedEncryptedParts sgndEndSignedParts =
sgndEndSupportingToken.getSignedParts();
- if((sgndEndSignedParts != null &&
+ if((sgndEndSignedParts != null &&
!sgndEndSignedParts.isOptional() &&
(sgndEndSignedParts.isBody() ||
sgndEndSignedParts.getHeaders().size() > 0))
||
rpd.isIncludeTimestamp()) {
@@ -117,7 +120,7 @@
Vector supportingToks = rpd.getSupportingTokensList();
for (int i = 0; i < supportingToks.size(); i++) {
SupportingToken supportingToken = (SupportingToken)
supportingToks.get(i);
- if (supportingToken != null) {
+ if (supportingToken != null && !supportingToken.isOptional()) {
SupportingPolicyData policyData = new
SupportingPolicyData();
policyData.build(supportingToken);
encryptedParts.addAll(RampartUtil.getSupportingEncryptedParts(rmd, policyData));
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java
Tue Feb 23 03:31:14 2010
@@ -277,6 +277,7 @@
private static void binding(Binding binding, RampartPolicyData rpd) {
rpd.setLayout(binding.getLayout().getValue());
rpd.setIncludeTimestamp(binding.isIncludeTimestamp());
+ rpd.setIncludeTimestampOptional(binding.isIncludeTimestampOptional());
rpd.setAlgorithmSuite(binding.getAlgorithmSuite());
}
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
Tue Feb 23 03:31:14 2010
@@ -49,6 +49,8 @@
private String layout;
private boolean includeTimestamp;
+
+ private boolean includeTimestampOptional;
private boolean entireHeadersAndBodySignatures;
@@ -218,9 +220,17 @@
*/
public void setIncludeTimestamp(boolean includeTimestamp) {
this.includeTimestamp = includeTimestamp;
- }
+ }
+
+ public boolean isIncludeTimestampOptional() {
+ return includeTimestampOptional;
+ }
- /**
+ public void setIncludeTimestampOptional(boolean
includeTimestampOptional) {
+ this.includeTimestampOptional = includeTimestampOptional;
+ }
+
+ /**
* @return Returns the layout.
*/
public String getLayout() {
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/SupportingPolicyData.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/SupportingPolicyData.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/SupportingPolicyData.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/policy/SupportingPolicyData.java
Tue Feb 23 03:31:14 2010
@@ -9,7 +9,7 @@
public void build(SupportingToken token) {
- if (token.getSignedParts() != null) {
+ if (token.getSignedParts() != null &&
!token.getSignedParts().isOptional()) {
Iterator it =
token.getSignedParts().getHeaders().iterator();
this.setSignBody(token.getSignedParts().isBody());
while (it.hasNext()) {
@@ -18,7 +18,7 @@
}
}
- if (token.getEncryptedParts() != null) {
+ if (token.getEncryptedParts() != null &&
!token.getEncryptedParts().isOptional()) {
Iterator it =
token.getEncryptedParts().getHeaders().iterator();
this.setEncryptBody(token.getEncryptedParts().isBody());
while (it.hasNext()) {
@@ -28,7 +28,7 @@
}
}
- if (token.getSignedElements() != null) {
+ if (token.getSignedElements() != null &&
!token.getSignedElements().isOptional()) {
Iterator it =
token.getSignedElements().getXPathExpressions()
.iterator();
while (it.hasNext()) {
@@ -38,7 +38,7 @@
.getDeclaredNamespaces());
}
- if (token.getEncryptedElements() != null) {
+ if (token.getEncryptedElements() != null &&
!token.getEncryptedElements().isOptional()) {
Iterator it =
token.getEncryptedElements().getXPathExpressions()
.iterator();
while (it.hasNext()) {
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Binding.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Binding.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Binding.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Binding.java
Tue Feb 23 03:31:14 2010
@@ -16,10 +16,15 @@
package org.apache.ws.secpolicy.model;
+/**
+ * @author prabath
+ *
+ */
public abstract class Binding extends AbstractSecurityAssertion implements
AlgorithmWrapper {
private AlgorithmSuite algorithmSuite;
private boolean includeTimestamp;
+ private boolean includeTimestampOptional;
private Layout layout;
private SupportingToken signedSupportingToken;
private SupportingToken signedEndorsingSupportingTokens;
@@ -55,9 +60,17 @@
*/
public void setIncludeTimestamp(boolean includeTimestamp) {
this.includeTimestamp = includeTimestamp;
- }
+ }
- /**
+ public boolean isIncludeTimestampOptional() {
+ return includeTimestampOptional;
+ }
+
+ public void setIncludeTimestampOptional(boolean
includeTimestampOptional) {
+ this.includeTimestampOptional = includeTimestampOptional;
+ }
+
+ /**
* @return Returns the layout.
*/
public Layout getLayout() {
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SupportingToken.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SupportingToken.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SupportingToken.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SupportingToken.java
Tue Feb 23 03:31:14 2010
@@ -52,6 +52,14 @@
private SignedEncryptedParts signedParts;
private SignedEncryptedParts encryptedParts;
+
+ private boolean signedElementsOptional;
+
+ private boolean encryptedElementsOptional;
+
+ private boolean signedPartsOptional;
+
+ private boolean encryptedPartsOptional;
public SupportingToken(int type, int version ) {
this.type = type;
@@ -171,8 +179,40 @@
public void setToken(Token tok) {
this.addToken(tok);
}
+
+ public boolean isSignedElementsOptional() {
+ return signedElementsOptional;
+ }
+
+ public void setSignedElementsOptional(boolean signedElementsOptional) {
+ this.signedElementsOptional = signedElementsOptional;
+ }
+
+ public boolean isEncryptedElementsOptional() {
+ return encryptedElementsOptional;
+ }
+
+ public void setEncryptedElementsOptional(boolean
encryptedElementsOptional) {
+ this.encryptedElementsOptional = encryptedElementsOptional;
+ }
+
+ public boolean isSignedPartsOptional() {
+ return signedPartsOptional;
+ }
+
+ public void setSignedPartsOptional(boolean signedPartsOptional) {
+ this.signedPartsOptional = signedPartsOptional;
+ }
+
+ public boolean isEncryptedPartsOptional() {
+ return encryptedPartsOptional;
+ }
+
+ public void setEncryptedPartsOptional(boolean encryptedPartsOptional) {
+ this.encryptedPartsOptional = encryptedPartsOptional;
+ }
- public QName getName() {
+ public QName getName() {
//TODO Should we refactor this class ?? with a SuppotingTokenBase and
sub classes
switch (type) {
case SPConstants.SUPPORTING_TOKEN_SUPPORTING:
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AsymmetricBindingBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AsymmetricBindingBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AsymmetricBindingBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AsymmetricBindingBuilder.java
Tue Feb 23 03:31:14 2010
@@ -78,6 +78,7 @@
} else if (SP11Constants.INCLUDE_TIMESTAMP.equals(name)) {
asymmetricBinding.setIncludeTimestamp(true);
+
asymmetricBinding.setIncludeTimestampOptional(assertion.isOptional());
} else if
(SPConstants.ENCRYPT_BEFORE_SIGNING.equals(name.getLocalPart())) {
asymmetricBinding.setProtectionOrder(SPConstants.ENCRYPT_BEFORE_SIGNING);
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedElementsBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedElementsBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedElementsBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedElementsBuilder.java
Tue Feb 23 03:31:14 2010
@@ -24,6 +24,7 @@
import org.apache.axiom.om.OMNamespace;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.ws.secpolicy.SP11Constants;
import org.apache.ws.secpolicy.SPConstants;
@@ -39,6 +40,12 @@
signedEncryptedElements.setXPathVersion(attribute.getAttributeValue());
}
+ OMAttribute isOptional =
element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ signedEncryptedElements.setOptional((new
Boolean(isOptional.getAttributeValue())
+ .booleanValue()));
+ }
+
for (Iterator iterator = element.getChildElements();
iterator.hasNext();) {
processElement((OMElement) iterator.next(),
signedEncryptedElements);
}
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java
Tue Feb 23 03:31:14 2010
@@ -24,6 +24,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.ws.secpolicy.SP11Constants;
import org.apache.ws.secpolicy.SPConstants;
@@ -47,6 +48,13 @@
// then we need to encrypt the whole body (refer to
http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html#_Toc161826515).
signedEncryptedParts.setBody(true);
}
+
+ OMAttribute isOptional = element
+ .getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ signedEncryptedParts.setOptional((new Boolean(isOptional
+ .getAttributeValue()).booleanValue()));
+ }
return signedEncryptedParts;
}
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedElementsBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedElementsBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedElementsBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedElementsBuilder.java
Tue Feb 23 03:31:14 2010
@@ -24,6 +24,7 @@
import org.apache.axiom.om.OMNamespace;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.ws.secpolicy.SP11Constants;
import org.apache.ws.secpolicy.SPConstants;
@@ -40,6 +41,12 @@
signedEncryptedElements.setXPathVersion(attrXPathVersion.getAttributeValue());
}
+ OMAttribute isOptional =
element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ signedEncryptedElements.setOptional((new
Boolean(isOptional.getAttributeValue())
+ .booleanValue()));
+ }
+
for (Iterator iterator = element.getChildElements();
iterator.hasNext();) {
processElement((OMElement) iterator.next(),
signedEncryptedElements);
}
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java
Tue Feb 23 03:31:14 2010
@@ -23,6 +23,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.ws.secpolicy.SP11Constants;
import org.apache.ws.secpolicy.SPConstants;
@@ -33,7 +34,11 @@
public Assertion build(OMElement element, AssertionBuilderFactory factory)
throws IllegalArgumentException {
SignedEncryptedParts signedEncryptedParts = new
SignedEncryptedParts(true, SPConstants.SP_V11);
-
+ OMAttribute isOptional =
element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ signedEncryptedParts.setOptional((new
Boolean(isOptional.getAttributeValue())
+ .booleanValue()));
+ }
for (Iterator iterator = element.getChildElements();
iterator.hasNext();) {
processElement((OMElement) iterator.next(), signedEncryptedParts);
}
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java
Tue Feb 23 03:31:14 2010
@@ -20,9 +20,11 @@
import javax.xml.namespace.QName;
+import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyEngine;
import org.apache.neethi.builders.AssertionBuilder;
@@ -50,7 +52,13 @@
} else if
(SP11Constants.SIGNED_ENDORSING_SUPPORTING_TOKENS.equals(name)) {
supportingToken = new
SupportingToken(SPConstants.SUPPORTING_TOKEN_SIGNED_ENDORSING,
SPConstants.SP_V11);
}
-
+
+ OMAttribute isOptional =
element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ supportingToken.setOptional((new
Boolean(isOptional.getAttributeValue())
+ .booleanValue()));
+ }
+
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
@@ -85,18 +93,22 @@
} else if (SP11Constants.SIGNED_PARTS.equals(qname)) {
supportingToken
.setSignedParts((SignedEncryptedParts) primitive);
+ supportingToken.setSignedPartsOptional(primitive.isOptional());
} else if (SP11Constants.SIGNED_ELEMENTS.equals(qname)) {
supportingToken
.setSignedElements((SignedEncryptedElements)
primitive);
+
supportingToken.setSignedElementsOptional(primitive.isOptional());
} else if (SP11Constants.ENCRYPTED_PARTS.equals(qname)) {
supportingToken
.setEncryptedParts((SignedEncryptedParts) primitive);
+
supportingToken.setEncryptedPartsOptional(primitive.isOptional());
} else if (SP11Constants.ENCRYPTED_ELEMENTS.equals(qname)) {
supportingToken
.setEncryptedElements((SignedEncryptedElements)
primitive);
+
supportingToken.setEncryptedElementsOptional(primitive.isOptional());
} else if (primitive instanceof Token) {
supportingToken.addToken((Token) primitive);
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java
Tue Feb 23 03:31:14 2010
@@ -24,6 +24,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyEngine;
import org.apache.neethi.builders.AssertionBuilder;
@@ -44,6 +45,12 @@
usernameToken.setInclusion(inclusion);
}
+ OMAttribute isOptional =
element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ usernameToken.setOptional((new
Boolean(isOptional.getAttributeValue())
+ .booleanValue()));
+ }
+
OMElement policyElement = element.getFirstElement();
if (policyElement != null &&
!policyElement.getQName().equals(org.apache.neethi.Constants.Q_ELEM_POLICY)) {
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java
Tue Feb 23 03:31:14 2010
@@ -24,6 +24,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyEngine;
import org.apache.neethi.builders.AssertionBuilder;
@@ -59,6 +60,13 @@
int inclusion =
SP11Constants.getInclusionFromAttributeValue(includeAttr.getAttributeValue());
x509Token.setInclusion(inclusion);
}
+
+ OMAttribute isOptional =
element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ x509Token.setOptional((new
Boolean(isOptional.getAttributeValue())
+ .booleanValue()));
+ }
+
if (policyElement != null) {
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AsymmetricBindingBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AsymmetricBindingBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AsymmetricBindingBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AsymmetricBindingBuilder.java
Tue Feb 23 03:31:14 2010
@@ -78,6 +78,7 @@
} else if (SP12Constants.INCLUDE_TIMESTAMP.equals(name)) {
asymmetricBinding.setIncludeTimestamp(true);
+
asymmetricBinding.setIncludeTimestampOptional(assertion.isOptional());
} else if (SP12Constants.ENCRYPT_BEFORE_SIGNING.equals(name)) {
asymmetricBinding.setProtectionOrder(SPConstants.ENCRYPT_BEFORE_SIGNING);
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedElementsBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedElementsBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedElementsBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedElementsBuilder.java
Tue Feb 23 03:31:14 2010
@@ -24,6 +24,7 @@
import org.apache.axiom.om.OMNamespace;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.ws.secpolicy.SPConstants;
import org.apache.ws.secpolicy.SP12Constants;
@@ -43,6 +44,13 @@
processElement((OMElement) iterator.next(),
signedEncryptedElements);
}
+ OMAttribute isOptional = element
+ .getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ signedEncryptedElements.setOptional((new
Boolean(isOptional
+ .getAttributeValue()).booleanValue()));
+ }
+
return signedEncryptedElements;
}
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java
Tue Feb 23 03:31:14 2010
@@ -24,6 +24,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.ws.secpolicy.SPConstants;
import org.apache.ws.secpolicy.SP12Constants;
@@ -47,6 +48,13 @@
// then we need to encrypt the whole body (refer to
http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html#_Toc161826515).
signedEncryptedParts.setBody(true);
}
+
+ OMAttribute isOptional = element
+ .getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ signedEncryptedParts.setOptional((new Boolean(isOptional
+ .getAttributeValue()).booleanValue()));
+ }
return signedEncryptedParts;
}
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedElementsBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedElementsBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedElementsBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedElementsBuilder.java
Tue Feb 23 03:31:14 2010
@@ -24,6 +24,7 @@
import org.apache.axiom.om.OMNamespace;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.ws.secpolicy.SPConstants;
import org.apache.ws.secpolicy.SP12Constants;
@@ -41,6 +42,12 @@
signedEncryptedElements.setXPathVersion(attrXPathVersion.getAttributeValue());
}
+ OMAttribute isOptional =
element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ signedEncryptedElements.setOptional((new
Boolean(isOptional.getAttributeValue())
+ .booleanValue()));
+ }
+
for (Iterator iterator = element.getChildElements();
iterator.hasNext();) {
processElement((OMElement) iterator.next(),
signedEncryptedElements);
}
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java
Tue Feb 23 03:31:14 2010
@@ -23,6 +23,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.ws.secpolicy.SPConstants;
import org.apache.ws.secpolicy.SP12Constants;
@@ -38,6 +39,12 @@
processElement((OMElement) iterator.next(), signedEncryptedParts);
}
+ OMAttribute isOptional =
element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ signedEncryptedParts.setOptional((new
Boolean(isOptional.getAttributeValue())
+ .booleanValue()));
+ }
+
return signedEncryptedParts;
}
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java
Tue Feb 23 03:31:14 2010
@@ -20,9 +20,11 @@
import javax.xml.namespace.QName;
+import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyEngine;
import org.apache.neethi.builders.AssertionBuilder;
@@ -66,6 +68,12 @@
supportingToken = new SupportingToken(
SPConstants.SUPPORTING_TOKEN_SIGNED_ENDORSING_ENCRYPTED,
SPConstants.SP_V12);
}
+
+ OMAttribute isOptional =
element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ supportingToken.setOptional((new
Boolean(isOptional.getAttributeValue())
+ .booleanValue()));
+ }
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java
Tue Feb 23 03:31:14 2010
@@ -24,6 +24,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyEngine;
import org.apache.neethi.builders.AssertionBuilder;
@@ -44,6 +45,12 @@
usernameToken.setInclusion(inclusion);
}
+ OMAttribute isOptional =
element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ usernameToken.setOptional((new
Boolean(isOptional.getAttributeValue())
+ .booleanValue()));
+ }
+
OMElement policyElement = element.getFirstElement();
if (policyElement != null &&
policyElement.getQName().equals(org.apache.neethi.Constants.Q_ELEM_POLICY)) {
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java?rev=915159&r1=915158&r2=915159&view=diff
==============================================================================
---
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java
(original)
+++
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java
Tue Feb 23 03:31:14 2010
@@ -24,6 +24,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Constants;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyEngine;
import org.apache.neethi.builders.AssertionBuilder;
@@ -58,6 +59,12 @@
int inclusion =
SP12Constants.getInclusionFromAttributeValue(includeAttr.getAttributeValue());
x509Token.setInclusion(inclusion);
}
+
+ OMAttribute isOptional =
element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
+ if (isOptional != null) {
+ x509Token.setOptional((new
Boolean(isOptional.getAttributeValue())
+ .booleanValue()));
+ }
if (policyElement != null) {