Author: thilinamb
Date: Tue Mar  1 06:59:15 2011
New Revision: 1075683

URL: http://svn.apache.org/viewvc?rev=1075683&view=rev
Log:
- Registering HttpsTokenBuilder as a neethi assertion builder. 
- Adding a null check before processing policy alternatives defined for 
HttpsTokens to support the <HttpsToken/> assertion.
Modified:
    
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder
    
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/HttpsTokenBuilder.java
    
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportTokenBuilder.java

Modified: 
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder?rev=1075683&r1=1075682&r2=1075683&view=diff
==============================================================================
--- 
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder
 (original)
+++ 
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder
 Tue Mar  1 06:59:15 2011
@@ -44,4 +44,5 @@ org.apache.ws.secpolicy12.builders.Secur
 org.apache.ws.secpolicy12.builders.SymmetricBindingBuilder
 org.apache.ws.secpolicy12.builders.IssuedTokenBuilder
 org.apache.ws.secpolicy12.builders.RequiredElementsBuilder
-org.apache.ws.secpolicy12.builders.ContentEncryptedElementsBuilder
\ No newline at end of file
+org.apache.ws.secpolicy12.builders.ContentEncryptedElementsBuilder
+org.apache.ws.secpolicy12.builders.HttpsTokenBuilder
\ No newline at end of file

Modified: 
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/HttpsTokenBuilder.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/HttpsTokenBuilder.java?rev=1075683&r1=1075682&r2=1075683&view=diff
==============================================================================
--- 
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/HttpsTokenBuilder.java
 (original)
+++ 
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/HttpsTokenBuilder.java
 Tue Mar  1 06:59:15 2011
@@ -15,21 +15,20 @@
  */
 package org.apache.ws.secpolicy12.builders;
 
-import java.util.Iterator;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
 import org.apache.axiom.om.OMElement;
 import org.apache.neethi.Assertion;
 import org.apache.neethi.AssertionBuilderFactory;
 import org.apache.neethi.Policy;
 import org.apache.neethi.PolicyEngine;
 import org.apache.neethi.builders.AssertionBuilder;
-import org.apache.ws.secpolicy.SPConstants;
 import org.apache.ws.secpolicy.SP12Constants;
+import org.apache.ws.secpolicy.SPConstants;
 import org.apache.ws.secpolicy.model.HttpsToken;
 
+import javax.xml.namespace.QName;
+import java.util.Iterator;
+import java.util.List;
+
 /**
  * This is a standard assertion builder implementation for the https token 
  * as specified by the ws security policy 1.2 specification. In order for this 
builder to be used
@@ -50,15 +49,17 @@ public class HttpsTokenBuilder implement
      */
     public Assertion build(OMElement element, AssertionBuilderFactory factory) 
throws IllegalArgumentException {
         HttpsToken httpsToken = new HttpsToken(SPConstants.SP_V12);
-        
-        Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
-        policy = (Policy) policy.normalize(false);
-        
-        for (Iterator iterator = policy.getAlternatives(); 
iterator.hasNext();) {
-            processAlternative((List) iterator.next(), httpsToken);
-            break; // since there should be only one alternative
+
+        if (element.getFirstElement()!= null) {
+            Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+            policy = (Policy) policy.normalize(false);
+
+            for (Iterator iterator = policy.getAlternatives(); 
iterator.hasNext();) {
+                processAlternative((List) iterator.next(), httpsToken);
+                break; // since there should be only one alternative
+            }
         }
-        
+
         return httpsToken;
     }
 

Modified: 
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportTokenBuilder.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportTokenBuilder.java?rev=1075683&r1=1075682&r2=1075683&view=diff
==============================================================================
--- 
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportTokenBuilder.java
 (original)
+++ 
axis/axis2/java/rampart/trunk/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportTokenBuilder.java
 Tue Mar  1 06:59:15 2011
@@ -15,69 +15,46 @@
  */
 package org.apache.ws.secpolicy12.builders;
 
-import java.util.Iterator;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
 import org.apache.axiom.om.OMElement;
 import org.apache.neethi.Assertion;
 import org.apache.neethi.AssertionBuilderFactory;
 import org.apache.neethi.Policy;
-import org.apache.neethi.PolicyContainingAssertion;
 import org.apache.neethi.PolicyEngine;
 import org.apache.neethi.builders.AssertionBuilder;
-import org.apache.ws.secpolicy.SPConstants;
 import org.apache.ws.secpolicy.SP12Constants;
+import org.apache.ws.secpolicy.SPConstants;
 import org.apache.ws.secpolicy.model.HttpsToken;
 import org.apache.ws.secpolicy.model.TransportToken;
 
+import javax.xml.namespace.QName;
+import java.util.Iterator;
+import java.util.List;
+
 public class TransportTokenBuilder implements AssertionBuilder<OMElement> {
-    
-   
-    
+
     public Assertion build(OMElement element, AssertionBuilderFactory factory) 
throws IllegalArgumentException {
         TransportToken transportToken = new TransportToken(SPConstants.SP_V12);
-        
         Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
         policy = (Policy) policy.normalize(false);
-        
+
         for (Iterator iterator = policy.getAlternatives(); 
iterator.hasNext();) {
             processAlternative((List) iterator.next(), transportToken);
             break; // since there should be only one alternative
         }
-        
+
         return transportToken;
     }
-        
+
     public QName[] getKnownElements() {
         return new QName[] {SP12Constants.TRANSPORT_TOKEN};
     }
-    
+
     private void processAlternative(List assertions, TransportToken parent) {
-        
         for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
             Assertion primtive = (Assertion) iterator.next();
             QName qname = primtive.getName();
-            
-            if (SP12Constants.HTTPS_TOKEN.equals(qname)) {
-                HttpsToken httpsToken = new HttpsToken(SPConstants.SP_V12);
-                Policy child = 
((PolicyContainingAssertion)primtive).getPolicy();
-                Iterator<List<Assertion>> alts = child.getAlternatives();
-                while (alts.hasNext()) {
-                    for (Assertion assertion : alts.next()) {
-                        QName qn = assertion.getName();
-                        if 
(SP12Constants.HTTP_BASIC_AUTHENTICATION.equals(qn)) {
-                            httpsToken.setHttpBasicAuthentication(true);
-                        } else if 
(SP12Constants.HTTP_DIGEST_AUTHENTICATION.equals(qn)) {
-                            httpsToken.setHttpDigestAuthentication(true);
-                        } else if 
(SP12Constants.REQUIRE_CLIENT_CERTIFICATE.equals(qn)) {
-                            httpsToken.setRequireClientCertificate(true);
-                        }
-                    }
-                }
-                
-                parent.setToken(httpsToken);
+                if(SP12Constants.HTTPS_TOKEN.equals(qname)){
+                    parent.setToken((HttpsToken)primtive);
             }
         }
     }


Reply via email to