You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2006/11/08 21:27:52 UTC
svn commit: r472625 - in
/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy:
builders/ model/
Author: dims
Date: Wed Nov 8 12:27:51 2006
New Revision: 472625
URL: http://svn.apache.org/viewvc?view=rev&rev=472625
Log:
Fix fir AXIS2-1651 - Deserialization of child policies of secPolicy assertions is incorrect
Modified:
webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/IssuedTokenBuilder.java
webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java
webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java
webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java
webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java
webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java
webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java
webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java
webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java
webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java
webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java
Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/IssuedTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/IssuedTokenBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/IssuedTokenBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/IssuedTokenBuilder.java Wed Nov 8 12:27:51 2006
@@ -31,34 +31,43 @@
public class IssuedTokenBuilder implements AssertionBuilder {
- public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+ public Assertion build(OMElement element, AssertionBuilderFactory factory)
+ throws IllegalArgumentException {
IssuedToken issuedToken = new IssuedToken();
-
- //Extract Issuer
+
+ // Extract Issuer
OMElement issuerElem = element.getFirstChildWithName(Constants.ISSUER);
- if(issuerElem != null && issuerElem.getFirstElement() != null) {
+ if (issuerElem != null && issuerElem.getFirstElement() != null) {
issuedToken.setIssuerEpr(issuerElem.getFirstElement());
}
-
- //Extract RSTTemplate
+
+ // Extract RSTTemplate
OMElement rstTmplElem = element.getFirstChildWithName(Constants.ISSUER);
- if(rstTmplElem != null) {
+ if (rstTmplElem != null) {
issuedToken.setIssuerEpr(rstTmplElem);
}
-
- Policy policy = PolicyEngine.getPolicy(element);
- policy = (Policy) policy.normalize(false);
-
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), issuedToken);
- break; // since there should be only one alternative ..
+
+ OMElement policyElement = element.getFirstElement();
+
+ if (policyElement != null
+ && policyElement.getQName().equals(
+ org.apache.neethi.Constants.Q_ELEM_POLICY)) {
+
+ Policy policy = PolicyEngine.getPolicy(policyElement);
+ policy = (Policy) policy.normalize(false);
+
+ for (Iterator iterator = policy.getAlternatives(); iterator
+ .hasNext();) {
+ processAlternative((List) iterator.next(), issuedToken);
+ break; // since there should be only one alternative ..
+ }
}
-
+
return issuedToken;
}
-
+
public QName[] getKnownElements() {
- return new QName[] {Constants.ISSUED_TOKEN};
+ return new QName[] { Constants.ISSUED_TOKEN };
}
private void processAlternative(List assertions, IssuedToken parent) {
@@ -68,15 +77,15 @@
for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
assertion = (Assertion) iterator.next();
name = assertion.getName();
-
+
if (Constants.REQUIRE_DERIVED_KEYS.equals(name)) {
parent.setDerivedKeys(true);
- } else if(Constants.REQUIRE_EXTERNAL_REFERNCE.equals(name)) {
+ } else if (Constants.REQUIRE_EXTERNAL_REFERNCE.equals(name)) {
parent.setRequireExternalReference(true);
- } else if(Constants.REQUIRE_INTERNAL_REFERNCE.equals(name)) {
+ } else if (Constants.REQUIRE_INTERNAL_REFERNCE.equals(name)) {
parent.setRequireInternalReference(true);
}
}
-
+
}
}
Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java Wed Nov 8 12:27:51 2006
@@ -36,7 +36,7 @@
public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
Layout layout = new Layout();
- Policy policy = PolicyEngine.getPolicy(element);
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext(); ) {
Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java Wed Nov 8 12:27:51 2006
@@ -35,7 +35,7 @@
public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
ProtectionToken protectionToken = new ProtectionToken();
- Policy policy = PolicyEngine.getPolicy(element);
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java Wed Nov 8 12:27:51 2006
@@ -36,7 +36,7 @@
throws IllegalArgumentException {
RecipientToken recipientToken = new RecipientToken();
- Policy policy = PolicyEngine.getPolicy(element);
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java Wed Nov 8 12:27:51 2006
@@ -54,12 +54,11 @@
Constants.SUPPORTING_TOKEN_SIGNED_ENDORSING);
}
- Policy policy = PolicyEngine.getPolicy(element);
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
processAlternative((List) iterator.next(), supportingToken);
-
/*
* for the moment we will say there should be only one alternative
*/
Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java Wed Nov 8 12:27:51 2006
@@ -37,7 +37,7 @@
public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
SymmetricBinding symmetricBinding = new SymmetricBinding();
- Policy policy = PolicyEngine.getPolicy(element);
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java Wed Nov 8 12:27:51 2006
@@ -37,9 +37,8 @@
public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
TransportBinding transportBinding = new TransportBinding();
- OMElement policyElement = element.getFirstElement();
-
- Policy policy = PolicyEngine.getPolicy(policyElement);
+
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java Wed Nov 8 12:27:51 2006
@@ -52,16 +52,22 @@
usernameToken.setInclusion(Constants.INCLUDE_ALWAYS);
}
- Policy policy = PolicyEngine.getPolicy(element);
- policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), usernameToken);
+ OMElement policyElement = element.getFirstElement();
+
+ if (policyElement != null && !policyElement.getQName().equals(org.apache.neethi.Constants.Q_ELEM_POLICY)) {
+
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+ policy = (Policy) policy.normalize(false);
- /*
- * since there should be only one alternative
- */
- break;
+ for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative((List) iterator.next(), usernameToken);
+
+ /*
+ * since there should be only one alternative
+ */
+ break;
+ }
}
return usernameToken;
Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java Wed Nov 8 12:27:51 2006
@@ -36,7 +36,7 @@
Wss10 wss10 = new Wss10();
- Policy policy = PolicyEngine.getPolicy(element);
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java Wed Nov 8 12:27:51 2006
@@ -35,7 +35,7 @@
throws IllegalArgumentException {
Wss11 wss11 = new Wss11();
- Policy policy = PolicyEngine.getPolicy(element);
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java Wed Nov 8 12:27:51 2006
@@ -65,8 +65,20 @@
writer.writeStartElement(prefix, localName, namespaceURI);
+ String wspPrefix = writer.getPrefix(Constants.POLICY.getNamespaceURI());
+ if (wspPrefix == null) {
+ writer.setPrefix(wspPrefix, Constants.POLICY.getNamespaceURI());
+ }
+
+ // <wsp:Policy>
+ writer.writeStartElement(Constants.POLICY.getPrefix(), Constants.POLICY.getLocalPart(), Constants.POLICY.getNamespaceURI());
+
// serialization of the token ..
transportToken.serialize(writer);
+
+ // </wsp:Policy>
+ writer.writeEndElement();
+
writer.writeEndElement();
// </sp:TransportToken>
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org