You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2006/08/22 21:02:11 UTC

svn commit: r433727 - in /webservices/axis2/trunk/java/modules/secpolicy/src: META-INF/ META-INF/services/ org/apache/ws/secpolicy/ org/apache/ws/secpolicy/builders/ org/apache/ws/secpolicy/model/

Author: sanka
Date: Tue Aug 22 12:02:10 2006
New Revision: 433727

URL: http://svn.apache.org/viewvc?rev=433727&view=rev
Log:
Modified AssertionBuilder s.t. they will compliant to the latest changes in 
Neethi project.
Added few new AsertionBuilders.
Modified Security Assertion objects s.t. they are compliant with both Neethi and Security frameworks.




Added:
    webservices/axis2/trunk/java/modules/secpolicy/src/META-INF/
    webservices/axis2/trunk/java/modules/secpolicy/src/META-INF/services/
    webservices/axis2/trunk/java/modules/secpolicy/src/META-INF/services/org.apache.neethi.builders.AssertionBuilder
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/InitiatorTokenBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/X509TokenBuilder.java
Removed:
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedPartsBuilders.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SecurityAssertionBuilder.java
Modified:
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/Constants.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/AlgorithmSuiteBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/AsymmetricBindingBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedElementsBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SignedElementsBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SignedPartsBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportTokenBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AlgorithmSuite.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AsymmetricBinding.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/EncryptionToken.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/HttpsToken.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/InitiatorToken.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Layout.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/RecipientToken.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignatureToken.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SupportingToken.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SymmetricBinding.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportBinding.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/UsernameToken.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Wss10.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/X509Token.java

Added: webservices/axis2/trunk/java/modules/secpolicy/src/META-INF/services/org.apache.neethi.builders.AssertionBuilder
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/META-INF/services/org.apache.neethi.builders.AssertionBuilder?rev=433727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/META-INF/services/org.apache.neethi.builders.AssertionBuilder (added)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/META-INF/services/org.apache.neethi.builders.AssertionBuilder Tue Aug 22 12:02:10 2006
@@ -0,0 +1,18 @@
+org.apache.ws.secpolicy.builders.AlgorithmSuiteBuilder
+org.apache.ws.secpolicy.builders.AsymmetricBindingBuilder
+org.apache.ws.secpolicy.builders.EncryptedElementsBuilder
+org.apache.ws.secpolicy.builders.EncryptedPartsBuilder
+org.apache.ws.secpolicy.builders.InitiatorTokenBuilder
+org.apache.ws.secpolicy.builders.LayoutBuilder
+org.apache.ws.secpolicy.builders.ProtectionTokenBuilder
+org.apache.ws.secpolicy.builders.RecipientTokenBuilder
+org.apache.ws.secpolicy.builders.SignedElementsBuilder
+org.apache.ws.secpolicy.builders.SignedPartsBuilder
+org.apache.ws.secpolicy.builders.SupportingTokensBuilder
+org.apache.ws.secpolicy.builders.TransportBindingBuilder
+org.apache.ws.secpolicy.builders.TransportTokenBuilder
+org.apache.ws.secpolicy.builders.UsernameTokenBuilder
+org.apache.ws.secpolicy.builders.WSS10Builder
+org.apache.ws.secpolicy.builders.WSS11Builder
+org.apache.ws.secpolicy.builders.X509TokenBuilder
+

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/Constants.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/Constants.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/Constants.java Tue Aug 22 12:02:10 2006
@@ -152,6 +152,8 @@
     public final static String STRT10 = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform";
     
     
+    
+    
     public static final QName INCLUDE_TOKEN = new QName(SP_NS, "IncludeToken");
     
     public static final QName TRANSPORT_BINDING = new QName(SP_NS, "TransportBinding");
@@ -166,6 +168,8 @@
         
     public static final QName HTTPS_TOKEN = new QName(Constants.SP_NS, "HttpsToken");
     
+    public static final QName SIGNATURE_TOKEN = new QName(Constants.SP_NS, "SignatureToken");
+        
     public static final QName SIGNED_PARTS = new QName(Constants.SP_NS, "SignedParts");
     
     public static final QName USERNAME_TOKEN = new QName(Constants.SP_NS, "UsernameToken");
@@ -180,6 +184,8 @@
     
     public static final QName ENCRYPTED_ELEMENTS = new QName(Constants.SP_NS, "EncryptedElements");
     
+    public static final QName ENCRYPTION_TOKEN = new QName(Constants.SP_NS, "EncryptionToken");
+        
     public static final QName X509_TOKEN = new QName(Constants.SP_NS, "X509Token");
     
     public static final QName SUPPORIING_TOKENS = new QName(Constants.SP_NS, "SupportingTokens");
@@ -195,6 +201,53 @@
     public static final QName ASYMMETRIC_BINDING = new QName(Constants.SP_NS, "AsymmetricBinding");
     
     public static final QName SYMMETRIC_BINDING = new QName(Constants.SP_NS, "SymmetricBinding");
+    
+    public static final QName INITIATOR_TOKEN = new QName(Constants.SP_NS, "InitiatorToken");
+    
+    public static final QName RECIPIENT_TOKEN = new QName(Constants.SP_NS, "RecipientToken");
+    
+    public static final QName REQUIRE_KEY_IDENTIFIRE_REFERENCE = new QName(Constants.SP_NS, "RequireKeyIdentifireReference");
+    
+    public static final QName REQUIRE_ISSUER_SERIAL_REFERENCE = new QName(Constants.SP_NS, "RequireIssuerSerializerReference");
+    
+    public static final QName REQUIRE_EMBEDDED_TOKEN_REFERENCE = new QName(Constants.SP_NS, "RequireEmbeddedTokenReference");
+    
+    public static final QName REQUIRE_THUMBPRINT_REFERENCE = new QName(Constants.SP_NS, "RequireThumbprintReference");
+    
+    public static final QName WSS_X509_V1_TOKEN_10 = new QName(Constants.SP_NS, "WssX509V1Token10");
+    
+    public static final QName WSS_X509_V3_TOKEN_10 = new QName(Constants.SP_NS, "WssX509V3Token10");
+    
+    public static final QName WSS_X509_PKCS7_TOKEN_10 = new QName(Constants.SP_NS, "WssX509Pkcs7Token10");
+    
+    public static final QName WSS_X509_PKI_PATH_V1_TOKEN_10 = new QName(Constants.SP_NS, "WssX509PkiPathV1Token10");
+    
+    public static final QName WSS_X509_V1_TOKEN_11 = new QName(Constants.SP_NS, "WssX509V1Token11");
+    
+    public static final QName WSS_X509_V3_TOKEN_11 = new QName(Constants.SP_NS, "WssX509V3Token11");
+    
+    public static final QName WSS_X509_PKCS7_TOKEN_11 = new QName(Constants.SP_NS, "WssX509Pkcs7Token11");
+    
+    public static final QName WSS_X509_PKI_PATH_V1_TOKEN_11 = new QName(Constants.SP_NS, "WssX509PkiPathV1Token11");
+    
+    public static final QName WSS10 = new QName(Constants.SP_NS, "Wss10");
+    
+    public static final QName MUST_SUPPORT_REF_KEY_IDENTIFIER = new QName(Constants.SP_NS, "MustSupportRefKeyIdentifier");
+    
+    public static final QName MUST_SUPPORT_REF_ISSUER_SERIAL = new QName(Constants.SP_NS, "MustSupportRefIssuerSerail");
+    
+    public static final QName MUST_SUPPORT_REF_EXTERNAL_URI = new QName(Constants.SP_NS, "MustSupportRefExternalURI");
+    
+    public static final QName MUST_SUPPORT_REF_EMBEDDED_TOKEN = new QName(Constants.SP_NS, "MustSupportRefEmbeddedToken");
         
+    public static final QName WSS11 = new QName(Constants.SP_NS, "Wss11");    
+    
+    public static final QName MUST_SUPPORT_REF_THUMBPRINT = new QName(Constants.SP_NS, "MustSupportRefThumbprint");
+    
+    public static final QName MUST_SUPPORT_REF_ENCRYPTED_KEY = new QName(Constants.SP_NS, "MustSupportRefEncryptedkey");
+    
+    public static final QName REQUIRE_SIGNATURE_CONFIRMATION = new QName(Constants.SP_NS, "RequireSignatureConfirmation");
+    
 }
+
 

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/AlgorithmSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/AlgorithmSuiteBuilder.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/AlgorithmSuiteBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/AlgorithmSuiteBuilder.java Tue Aug 22 12:02:10 2006
@@ -126,6 +126,10 @@
             }    
         }
         
-        target.addOption(algorithmSuite);
+        target.addConfiguration(algorithmSuite);
+    }
+
+    public QName getKnownElement() {
+        return Constants.ALGORITHM_SUITE;
     }
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/AsymmetricBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/AsymmetricBindingBuilder.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/AsymmetricBindingBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/AsymmetricBindingBuilder.java Tue Aug 22 12:02:10 2006
@@ -15,16 +15,79 @@
  */
 package org.apache.ws.secpolicy.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.Constants;
+import org.apache.ws.secpolicy.model.AlgorithmSuite;
+import org.apache.ws.secpolicy.model.AsymmetricBinding;
+import org.apache.ws.secpolicy.model.InitiatorToken;
+import org.apache.ws.secpolicy.model.Layout;
+import org.apache.ws.secpolicy.model.RecipientToken;
 
 public class AsymmetricBindingBuilder implements AssertionBuilder {
 
     public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
-        return null;
         
+        AsymmetricBinding asymmetricBinding =  new AsymmetricBinding();
+        
+        Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+        policy = (Policy) policy.normalize(false);
+        
+        for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
+            processAlternative((List) iterator.next(), asymmetricBinding);
+        }
+        
+        return asymmetricBinding;
+    }
+    
+    private void processAlternative(List assertions, AsymmetricBinding parent) {
+        AsymmetricBinding asymmetricBinding = new AsymmetricBinding();
+        
+        Assertion assertion;
+        QName name;
+        
+        for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+            assertion = (Assertion) iterator.next();
+            name = assertion.getName();
+            
+            if (Constants.INITIATOR_TOKEN.equals(name)) {
+                asymmetricBinding.setInitiatorToken((InitiatorToken) assertion);
+                
+            } else if (Constants.RECIPIENT_TOKEN.equals(name)){
+                asymmetricBinding.setRecipientToken((RecipientToken) assertion);
+                
+            } else if (Constants.ALGORITHM_SUITE.equals(name)) {
+                asymmetricBinding.setAlgorithmSuite((AlgorithmSuite) assertion);
+            
+            } else if (Constants.LAYOUT.equals(name)) {
+                asymmetricBinding.setLayout((Layout) assertion);
+                
+            } else if (Constants.INCLUDE_TIMESTAMP.equals(name)) {
+                asymmetricBinding.setIncludeTimestamp(true);
+                
+            } else if (Constants.ENCRYPT_BEFORE_SIGNING.equals(name)) {
+                asymmetricBinding.setProtectionOrder(Constants.ENCRYPT_BEFORE_SIGNING);
+                
+            } else if (Constants.SIGN_BEFORE_ENCRYPTING.equals(name)) {
+                asymmetricBinding.setProtectionOrder(Constants.SIGN_BEFORE_ENCRYPTING);
+            }  
+        }
+                
+        parent.addConfiguration(asymmetricBinding);
+    }
+    
+    public QName getKnownElement() {
+        return Constants.ASYMMETRIC_BINDING;
     }
     
 }
+ 
\ No newline at end of file

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedElementsBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedElementsBuilder.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedElementsBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedElementsBuilder.java Tue Aug 22 12:02:10 2006
@@ -47,9 +47,19 @@
         return signedEncryptedElements;
     }
     
+    
+    
+    public QName getKnownElement() {
+        return Constants.ENCRYPTED_ELEMENTS;
+    }
+
+
+
     private void processElement(OMElement element, SignedEncryptedElements parent) {
         if (XPATH.equals(element.getQName())) {
             parent.setXPathVersion(element.getText());                        
         }
     }
+    
+    
 }

Added: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java?rev=433727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java (added)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java Tue Aug 22 12:02:10 2006
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ws.secpolicy.builders;
+
+import java.util.Iterator;
+
+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.builders.AssertionBuilder;
+import org.apache.ws.secpolicy.Constants;
+import org.apache.ws.secpolicy.model.Header;
+import org.apache.ws.secpolicy.model.SignedEncryptedParts;
+
+public class EncryptedPartsBuilder implements AssertionBuilder {
+
+    public static final QName HEADER = new QName(Constants.SP_NS, "Header");
+    public static final QName NAME = new QName(Constants.SP_NS, "Name");
+    public static final QName NAMESPACE = new QName(Constants.SP_NS, "Namespace");
+    public static final QName BODY = new QName(Constants.SP_NS, "Body");
+        
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        
+        SignedEncryptedParts signedEncryptedParts = new SignedEncryptedParts(false);
+        
+        for (Iterator iterator = element.getChildElements(); iterator.hasNext();) {
+            processElement((OMElement) iterator.next(), signedEncryptedParts);
+        }
+        
+        return signedEncryptedParts;
+    }
+    
+    public QName getKnownElement() {
+        return Constants.ENCRYPTED_PARTS;
+    }
+
+    private void processElement(OMElement element, SignedEncryptedParts parent) {
+        
+        QName name = element.getQName();
+        
+        if (HEADER.equals(name)) {
+            Header header = new Header();
+            
+            OMAttribute nameAttribute = element.getAttribute(NAME);
+            header.setName(nameAttribute.getAttributeValue());
+            
+            OMAttribute namespaceAttribute = element.getAttribute(NAMESPACE);
+            header.setNamespace(namespaceAttribute.getAttributeValue());
+            
+        } else if (BODY.equals(name)) {
+            parent.setBody(true);            
+        }        
+    }
+}

Added: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/InitiatorTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/InitiatorTokenBuilder.java?rev=433727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/InitiatorTokenBuilder.java (added)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/InitiatorTokenBuilder.java Tue Aug 22 12:02:10 2006
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ws.secpolicy.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.Constants;
+import org.apache.ws.secpolicy.model.InitiatorToken;
+import org.apache.ws.secpolicy.model.Token;
+
+public class InitiatorTokenBuilder implements AssertionBuilder {
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory)
+            throws IllegalArgumentException {
+        InitiatorToken initiatorToken = new InitiatorToken();
+        
+        Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+        policy = (Policy) policy.normalize(false);
+        
+        for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
+            processAlternative((List) iterator.next(), initiatorToken);
+        }
+        
+        return initiatorToken;
+    }
+    
+    private void processAlternative(List assertions, InitiatorToken parent) {
+        
+        InitiatorToken initiatorToken = new InitiatorToken();
+        Object token;
+        
+        for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+            token = iterator.next();
+            
+            if (token instanceof Token) {
+                parent.setInitiatorToken((Token) token);
+            }
+        }
+        
+        parent.addConfiguration(initiatorToken);
+    }
+
+    public QName getKnownElement() {
+        return Constants.INITIATOR_TOKEN;
+    }
+
+}

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java Tue Aug 22 12:02:10 2006
@@ -49,6 +49,10 @@
         return layout;
     }
     
+    public QName getKnownElement() {
+        return Constants.LAYOUT;
+    }
+
     public void processAlternative(List assertions, Layout parent) {
         Layout layout = new Layout();
         
@@ -67,7 +71,7 @@
             }
             
         }
-        parent.addOption(layout);
+        parent.addCofiguration(layout);
     }
 
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java Tue Aug 22 12:02:10 2006
@@ -18,12 +18,15 @@
 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.Constants;
 import org.apache.ws.secpolicy.model.ProtectionToken;
 import org.apache.ws.secpolicy.model.Token;
 
@@ -41,7 +44,11 @@
         
         return protectionToken;
     }
-    
+        
+    public QName getKnownElement() {
+        return Constants.PROTECTION_TOKEN;
+    }
+
     private void processAlternative(List assertions, ProtectionToken parent) {
         ProtectionToken protectionToken = new ProtectionToken();
         

Added: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java?rev=433727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java (added)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java Tue Aug 22 12:02:10 2006
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ws.secpolicy.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.Constants;
+import org.apache.ws.secpolicy.model.RecipientToken;
+import org.apache.ws.secpolicy.model.Token;
+
+public class RecipientTokenBuilder implements AssertionBuilder {
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory)
+            throws IllegalArgumentException {
+        RecipientToken recipientToken = new RecipientToken();
+        
+        Policy policy = (Policy) PolicyEngine.getPolicy(element);
+        policy = (Policy) policy.normalize(false);
+        
+        for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
+            processAlternative((List) iterator.next(), recipientToken);
+        }
+        
+        return recipientToken;
+    }
+
+    private void processAlternative(List assertions, RecipientToken parent) {
+        RecipientToken recipientToken = new RecipientToken();
+        
+        Assertion assertion;
+        
+        for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+            assertion = (Assertion) iterator.next();
+            
+            if (assertion instanceof Token) {
+                recipientToken.setToken((Token) assertion);
+            }
+        }
+                
+        parent.addConfiguration(recipientToken);        
+    }
+    public QName getKnownElement() {
+        return Constants.RECIPIENT_TOKEN;
+    }
+
+}

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SignedElementsBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SignedElementsBuilder.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SignedElementsBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SignedElementsBuilder.java Tue Aug 22 12:02:10 2006
@@ -47,7 +47,11 @@
         
         return signedEncryptedElements;
     }
-    
+        
+    public QName getKnownElement() {
+        return Constants.SIGNED_ELEMENTS;
+    }
+
     private void processElement(OMElement element, SignedEncryptedElements parent) {
         QName name = element.getQName();
         if (XPATH.equals(name)) {

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SignedPartsBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SignedPartsBuilder.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SignedPartsBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SignedPartsBuilder.java Tue Aug 22 12:02:10 2006
@@ -30,8 +30,8 @@
 
 public class SignedPartsBuilder implements AssertionBuilder {
     public static final QName HEADER = new QName(Constants.SP_NS, "Header");
-    public static final QName NAME = new QName(Constants.SP_NS, "Name");
-    public static final QName NAMESPACE = new QName(Constants.SP_NS, "Namespace");
+    public static final QName NAME = new QName("Name");
+    public static final QName NAMESPACE = new QName("Namespace");
     public static final QName BODY = new QName(Constants.SP_NS, "Body");
         
     public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
@@ -43,7 +43,11 @@
         
         return signedEncryptedParts;
     }
-    
+       
+    public QName getKnownElement() {
+        return Constants.SIGNED_PARTS;
+    }
+
     private void processElement(OMElement element, SignedEncryptedParts parent) {
         
         QName name = element.getQName();
@@ -56,6 +60,8 @@
             
             OMAttribute namespaceAttribute = element.getAttribute(NAMESPACE);
             header.setNamespace(namespaceAttribute.getAttributeValue());
+            
+            parent.addHeader(header);
             
         } else if (BODY.equals(name)) {
             parent.setBody(true);            

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java Tue Aug 22 12:02:10 2006
@@ -58,7 +58,11 @@
         
         return supportingToken;
     }
-    
+   
+    public QName getKnownElement() {
+        return Constants.SUPPORIING_TOKENS;
+    }
+
     private void processAlternative(List assertions, SupportingToken parent) {
         SupportingToken supportingToken = new SupportingToken(parent.getTokenType());
         

Added: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java?rev=433727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java (added)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java Tue Aug 22 12:02:10 2006
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ws.secpolicy.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.builders.AssertionBuilder;
+import org.apache.ws.secpolicy.Constants;
+import org.apache.ws.secpolicy.model.EncryptionToken;
+import org.apache.ws.secpolicy.model.ProtectionToken;
+import org.apache.ws.secpolicy.model.SignatureToken;
+import org.apache.ws.secpolicy.model.SymmetricBinding;
+
+public class SymmetricBindingBuilder implements AssertionBuilder {
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        SymmetricBinding symmetricBinding = new SymmetricBinding();
+        
+        
+        return symmetricBinding;
+    }
+
+    public QName getKnownElement() {
+        return Constants.SYMMETRIC_BINDING;
+    }
+    
+    private void processAlternatives(List assertions, SymmetricBinding parent) {
+        SymmetricBinding symmetricBinding = new SymmetricBinding();
+        
+        Assertion assertion;
+        QName name;
+        
+        for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+            assertion = (Assertion) iterator.next();
+            name = assertion.getName();
+            
+            if (Constants.ENCRYPTION_TOKEN.equals(name)) {
+                symmetricBinding.setEncryptionToken((EncryptionToken) assertion);
+                
+            } else if (Constants.SIGNATURE_TOKEN.equals(name)) {
+                symmetricBinding.setSignatureToken((SignatureToken) assertion);
+                
+            } else if (Constants.PROTECTION_TOKEN.equals(name)) {
+                symmetricBinding.setProtectionToken((ProtectionToken) assertion);
+                
+            }
+        }
+        
+        parent.addConfiguration(symmetricBinding);
+        
+    }
+}

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java Tue Aug 22 12:02:10 2006
@@ -46,10 +46,13 @@
             processAlternative((List) iterator.next(), transportBinding, factory);
         }
         
-        
         return transportBinding;
     }
     
+    public QName getKnownElement() {
+        return Constants.TRANSPORT_BINDING;
+    }
+
     private void processAlternative(List assertionList, TransportBinding parent, AssertionBuilderFactory factory) {
         TransportBinding transportBinding = new TransportBinding();
         
@@ -77,6 +80,6 @@
                 transportBinding.setSignedEndorsingSupportingTokens((SupportingToken) primitive);
             }
         }
-        parent.addOption(transportBinding);
+        parent.addConfiguration(transportBinding);
     }
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportTokenBuilder.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportTokenBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportTokenBuilder.java Tue Aug 22 12:02:10 2006
@@ -47,7 +47,10 @@
         
         return transportToken;
     }
-    
+        
+    public QName getKnownElement() {
+        return Constants.TRANSPORT_TOKEN;
+    }
     
     private void processAlternative(List assertions, TransportToken parent) {
         TransportToken transportToken = new TransportToken();
@@ -62,6 +65,6 @@
             }
         }
         
-        parent.addOption(transportToken);
+        parent.addConfiguration(transportToken);
     }
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java Tue Aug 22 12:02:10 2006
@@ -61,7 +61,11 @@
         
         return usernameToken;
     }
-    
+        
+    public QName getKnownElement() {
+        return Constants.USERNAME_TOKEN;
+    }
+
     private void processAlternative(List assertions, UsernameToken parent) {
         UsernameToken usernameToken = new UsernameToken();
         usernameToken.setInclusion(parent.getInclusion());
@@ -77,6 +81,6 @@
                 usernameToken.setUseUTProfile11(true);
             }
         }
-        parent.addOption(usernameToken);
+        parent.addConfiguration(usernameToken);
     }
 }

Added: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java?rev=433727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java (added)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java Tue Aug 22 12:02:10 2006
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ws.secpolicy.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.Constants;
+import org.apache.ws.secpolicy.model.Wss10;
+
+public class WSS10Builder implements AssertionBuilder {
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory)
+            throws IllegalArgumentException {
+        
+        Wss10 wss10 = new Wss10();
+        
+        Policy policy = PolicyEngine.getPolicy(element);
+        policy = (Policy) policy.normalize(false);
+        
+        for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
+            processAlternative((List) iterator.next(), wss10);
+        }
+        
+        return wss10;
+    }
+
+    public QName getKnownElement() {
+        return Constants.WSS10;
+    }
+    
+    private void processAlternative(List assertions, Wss10 parent) {
+        
+        Wss10 wss10 = new Wss10();
+        
+        Assertion assertion;
+        QName name;
+        
+        for (Iterator iterator = assertions.iterator(); iterator.hasNext(); ) {
+            assertion = (Assertion) iterator.next();
+            name = assertion.getName();
+            
+            if (Constants.MUST_SUPPORT_REF_KEY_IDENTIFIER.equals(name)) {
+                wss10.setMustSupportRefKeyIdentifier(true);
+                
+            } else if (Constants.MUST_SUPPORT_REF_ISSUER_SERIAL.equals(name)) {
+                wss10.setMustSupportRefIssuerSerial(true);
+                
+            } else if (Constants.MUST_SUPPORT_REF_EXTERNAL_URI.equals(name)) {
+                wss10.setMustSupportRefExternalURI(true);
+                
+            } else if (Constants.MUST_SUPPORT_REF_EMBEDDED_TOKEN.equals(name)) {
+                wss10.setMustSupportRefEmbeddedToken(true);
+            }
+        }
+        
+        parent.addConfiguration(wss10);
+    }
+
+}

Added: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java?rev=433727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java (added)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java Tue Aug 22 12:02:10 2006
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ws.secpolicy.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.Constants;
+import org.apache.ws.secpolicy.model.Wss11;
+
+public class WSS11Builder implements AssertionBuilder {
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory)
+            throws IllegalArgumentException {
+        Wss11 wss11 = new Wss11();
+
+        Policy policy = (Policy) PolicyEngine.getPolicy(element);
+        policy = (Policy) policy.normalize(false);
+
+        for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
+            processAlternative((List) iterator.next(), wss11);
+        }
+
+        return wss11;
+    }
+
+    public QName getKnownElement() {
+        return Constants.WSS11;
+    }
+
+    private void processAlternative(List assertions, Wss11 parent) {
+        Wss11 wss11 = new Wss11();
+
+        Assertion assertion;
+        QName name;
+
+        for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+            assertion = (Assertion) iterator.next();
+            name = assertion.getName();
+
+            if (Constants.MUST_SUPPORT_REF_KEY_IDENTIFIER.equals(name)) {
+                wss11.setMustSupportRefKeyIdentifier(true);
+
+            } else if (Constants.MUST_SUPPORT_REF_ISSUER_SERIAL.equals(name)) {
+                wss11.setMustSupportRefIssuerSerial(true);
+
+            } else if (Constants.MUST_SUPPORT_REF_EXTERNAL_URI.equals(name)) {
+                wss11.setMustSupportRefExternalURI(true);
+
+            } else if (Constants.MUST_SUPPORT_REF_EMBEDDED_TOKEN.equals(name)) {
+                wss11.setMustSupportRefEmbeddedToken(true);
+                
+            } else if (Constants.MUST_SUPPORT_REF_THUMBPRINT.equals(name)) {
+                wss11.setMustSupportRefThumbprint(true);
+                
+            } else if (Constants.MUST_SUPPORT_REF_ENCRYPTED_KEY.equals(name)) {
+                wss11.setMustSupportRefEncryptedKey(true);
+                
+            } else if (Constants.REQUIRE_SIGNATURE_CONFIRMATION.equals(name)) {
+                wss11.setRequireSignatureConfirmation(true);
+            }
+        }
+
+        parent.addConfiguration(wss11);
+
+    }
+}

Added: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/X509TokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/X509TokenBuilder.java?rev=433727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/X509TokenBuilder.java (added)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/X509TokenBuilder.java Tue Aug 22 12:02:10 2006
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ws.secpolicy.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.Constants;
+import org.apache.ws.secpolicy.model.X509Token;
+
+public class X509TokenBuilder implements AssertionBuilder {
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory)
+            throws IllegalArgumentException {
+        X509Token x509Token = new X509Token();
+
+        OMElement policyElement = element.getFirstElement();
+
+        if (policyElement != null) {
+            Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+            policy = (Policy) policy.normalize(false);
+
+            for (Iterator iterator = policy.getAlternatives(); iterator
+                    .hasNext();) {
+                processAlternative((List) iterator.next(), x509Token);
+            }
+        }
+        return x509Token;
+    }
+
+    private void processAlternative(List assertions, X509Token parent) {
+        X509Token x509Token = new X509Token();
+
+        Assertion assertion;
+        QName name;
+
+        for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+            assertion = (Assertion) iterator.next();
+            name = (QName) assertion.getName();
+
+            if (Constants.REQUIRE_KEY_IDENTIFIRE_REFERENCE.equals(name)) {
+                x509Token.setRequireKeyIdentifierReference(true);
+
+            } else if (Constants.REQUIRE_ISSUER_SERIAL_REFERENCE.equals(name)) {
+                x509Token.setRequireIssuerSerialReference(true);
+
+            } else if (Constants.REQUIRE_EMBEDDED_TOKEN_REFERENCE.equals(name)) {
+                x509Token.setRequireEmbeddedTokenReference(true);
+
+            } else if (Constants.REQUIRE_THUMBPRINT_REFERENCE.equals(name)) {
+                x509Token.setRequireThumbprintReference(true);
+
+            } else if (Constants.WSS_X509_V1_TOKEN_10.equals(name)) {
+                x509Token.setTokenVersionAndType(Constants.WSS_X509_V1_TOKEN10);
+
+            } else if (Constants.WSS_X509_V1_TOKEN_11.equals(name)) {
+                x509Token.setTokenVersionAndType(Constants.WSS_X509_V1_TOKEN11);
+
+            } else if (Constants.WSS_X509_V3_TOKEN_10.equals(name)) {
+                x509Token.setTokenVersionAndType(Constants.WSS_X509_V3_TOKEN10);
+
+            } else if (Constants.WSS_X509_V3_TOKEN_11.equals(name)) {
+                x509Token.setTokenVersionAndType(Constants.WSS_X509_V3_TOKEN11);
+
+            } else if (Constants.WSS_X509_PKCS7_TOKEN_10.equals(name)) {
+                x509Token
+                        .setTokenVersionAndType(Constants.WSS_X509_PKCS7_TOKEN10);
+
+            } else if (Constants.WSS_X509_PKCS7_TOKEN_11.equals(name)) {
+                x509Token
+                        .setTokenVersionAndType(Constants.WSS_X509_PKCS7_TOKEN11);
+
+            } else if (Constants.WSS_X509_PKI_PATH_V1_TOKEN_10.equals(name)) {
+                x509Token
+                        .setTokenVersionAndType(Constants.WSS_X509_PKI_PATH_V1_TOKEN10);
+
+            } else if (Constants.WSS_X509_PKI_PATH_V1_TOKEN_11.equals(name)) {
+                x509Token
+                        .setTokenVersionAndType(Constants.WSS_X509_PKI_PATH_V1_TOKEN11);
+            }
+        }
+
+        parent.addConfiguration(x509Token);
+    }
+
+    public QName getKnownElement() {
+        return Constants.X509_TOKEN;
+    }
+}

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AlgorithmSuite.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AlgorithmSuite.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AlgorithmSuite.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AlgorithmSuite.java Tue Aug 22 12:02:10 2006
@@ -370,11 +370,18 @@
         xPath = path;
     }
     
-    public List getOptions() {
+    public List getConfigurations() {
         return algorithmSuites;
     }
     
-    public void addOption(AlgorithmSuite algorithmSuite) {
+    public AlgorithmSuite getDefaultConfiguration() {
+        if (algorithmSuites != null) {
+            return (AlgorithmSuite) algorithmSuites.get(0);
+        }
+        return null;
+    }
+    
+    public void addConfiguration(AlgorithmSuite algorithmSuite) {
         if (algorithmSuites == null) {
             algorithmSuites = new ArrayList();
         }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AsymmetricBinding.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AsymmetricBinding.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AsymmetricBinding.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AsymmetricBinding.java Tue Aug 22 12:02:10 2006
@@ -17,7 +17,6 @@
 package org.apache.ws.secpolicy.model;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import javax.xml.namespace.QName;
@@ -60,11 +59,18 @@
         this.recipientToken = recipientToken;
     }
     
-    public Iterator getOptions() {
-        return asymmetricBindings.iterator();
+    public List getConfigurations() {
+        return asymmetricBindings;
     }
     
-    public void addOption(AsymmetricBinding asymmetricBinding) {
+    public AsymmetricBinding getDefaultConfiguration() {
+        if (asymmetricBindings != null) {
+            return (AsymmetricBinding) asymmetricBindings.get(0);
+        }
+        return null;
+    }
+    
+    public void addConfiguration(AsymmetricBinding asymmetricBinding) {
         asymmetricBindings.add(asymmetricBinding);
     }
     public QName getName() {

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/EncryptionToken.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/EncryptionToken.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/EncryptionToken.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/EncryptionToken.java Tue Aug 22 12:02:10 2006
@@ -16,12 +16,13 @@
 
 package org.apache.ws.secpolicy.model;
 
-import org.apache.neethi.PolicyComponent;
-
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.neethi.PolicyComponent;
+import org.apache.ws.secpolicy.Constants;
+
 public class EncryptionToken extends AbstractSecurityAssertion implements TokenWrapper {
 
     private Token encryptionToken;
@@ -40,37 +41,21 @@
         this.encryptionToken = encryptionToken;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.ws.security.policy.TokenWrapper#setToken(org.apache.ws.security.policy.Token)
-     */
     public void setToken(Token tok)  {
         this.setEncryptionToken(tok);
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.neethi.Assertion#getName()
-     */
     public QName getName() {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
+        return Constants.ENCRYPTION_TOKEN;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.neethi.Assertion#normalize()
-     */
     public PolicyComponent normalize() {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
+        throw new UnsupportedOperationException();
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.neethi.PolicyComponent#serialize(javax.xml.stream.XMLStreamWriter)
-     */
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
+        throw new UnsupportedOperationException();
     }
-    
     
     
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/HttpsToken.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/HttpsToken.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/HttpsToken.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/HttpsToken.java Tue Aug 22 12:02:10 2006
@@ -17,7 +17,6 @@
 package org.apache.ws.secpolicy.model;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import javax.xml.namespace.QName;
@@ -51,11 +50,18 @@
         this.httpsToken = httpsToken;
     }
     
-    public Iterator getOptions() {
-        return httpsTokens.iterator();
+    public List getConfigurations() {
+        return httpsTokens;
     }
     
-    public void addOption(HttpsToken httpsToken) {
+    public HttpsToken getDefaultConfiguration() {
+        if (httpsTokens != null) {
+            return (HttpsToken) httpsTokens.get(0);
+        }
+        return null;
+    }
+        
+    public void addConfiguration(HttpsToken httpsToken) {
         httpsTokens.add(httpsToken);
     }
 

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/InitiatorToken.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/InitiatorToken.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/InitiatorToken.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/InitiatorToken.java Tue Aug 22 12:02:10 2006
@@ -16,14 +16,20 @@
 
 package org.apache.ws.secpolicy.model;
 
-import org.apache.neethi.PolicyComponent;
+import java.util.ArrayList;
+import java.util.List;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.neethi.PolicyComponent;
+import org.apache.ws.secpolicy.Constants;
+
 public class InitiatorToken extends AbstractSecurityAssertion implements TokenWrapper {
     
+    private ArrayList initiatorTokens = null;
+    
     private Token initiatorToken;
 
     /**
@@ -46,30 +52,39 @@
     public void setToken(Token tok) {
         this.setInitiatorToken(tok);
     }
+    
+    public List getConfigurations() {
+        return initiatorTokens;
+    }
+    
+    public InitiatorToken getDefaultConfiguration() {
+        if (initiatorTokens != null) {
+            return (InitiatorToken) initiatorTokens.get(0);
+        }
+        return null;
+    }
+    
+    public void addConfiguration(InitiatorToken initiatorToken) {
+        
+        if (initiatorTokens == null) {
+           initiatorTokens = new ArrayList();
+       }
+       initiatorTokens.add(initiatorToken);
+    }
 
-    /* (non-Javadoc)
-     * @see org.apache.neethi.Assertion#getName()
-     */
     public QName getName() {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
+        return Constants.INITIATOR_TOKEN;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.neethi.Assertion#normalize()
-     */
     public PolicyComponent normalize() {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
+        throw new UnsupportedOperationException();
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.neethi.PolicyComponent#serialize(javax.xml.stream.XMLStreamWriter)
-     */
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
+        throw new UnsupportedOperationException();
     }
+    
+    
     
     
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Layout.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Layout.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Layout.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Layout.java Tue Aug 22 12:02:10 2006
@@ -53,11 +53,18 @@
              }
     }
     
-    public List getOptions() {
+    public List getConfigurations() {
         return layouts;
     }
     
-    public void addOption(Layout layout) {
+    public Layout getDefaultConfiguration() {
+        if (layouts != null) {
+            return (Layout) layouts.get(0);
+        }
+        return null;
+    }
+    
+    public void addCofiguration(Layout layout) {
         if (layouts == null) {
             layouts = new ArrayList();
         }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/RecipientToken.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/RecipientToken.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/RecipientToken.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/RecipientToken.java Tue Aug 22 12:02:10 2006
@@ -16,15 +16,20 @@
 
 package org.apache.ws.secpolicy.model;
 
-import org.apache.neethi.PolicyComponent;
+import java.util.ArrayList;
+import java.util.List;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.neethi.PolicyComponent;
+import org.apache.ws.secpolicy.Constants;
+
 public class RecipientToken extends AbstractSecurityAssertion implements TokenWrapper {
     
     private Token receipientToken;
+    private ArrayList recipientTokens = null;
 
     /**
      * @return Returns the receipientToken.
@@ -39,6 +44,24 @@
     public void setReceipientToken(Token receipientToken) {
         this.receipientToken = receipientToken;
     }
+    
+    public List getConfigurations() {
+        return recipientTokens;
+    }
+    
+    public RecipientToken getDefaultConfiguration() {
+        if (recipientTokens != null) {
+            return (RecipientToken) recipientTokens.get(0);
+        }
+        return null;
+    }
+    
+    public void addConfiguration(RecipientToken recipientToken) {
+        if (recipientTokens == null) {
+            recipientTokens = new ArrayList();
+        }
+        recipientTokens.add(recipientToken);
+    }
 
     /* (non-Javadoc)
      * @see org.apache.ws.security.policy.TokenWrapper#setToken(org.apache.ws.security.policy.Token)
@@ -47,29 +70,15 @@
         this.setReceipientToken(tok);
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.neethi.Assertion#getName()
-     */
     public QName getName() {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
+        return Constants.RECIPIENT_TOKEN;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.neethi.Assertion#normalize()
-     */
     public PolicyComponent normalize() {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
+        throw new UnsupportedOperationException();
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.neethi.PolicyComponent#serialize(javax.xml.stream.XMLStreamWriter)
-     */
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
-    }
-    
-    
+        throw new UnsupportedOperationException();
+    }    
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignatureToken.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignatureToken.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignatureToken.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignatureToken.java Tue Aug 22 12:02:10 2006
@@ -16,13 +16,7 @@
 
 package org.apache.ws.secpolicy.model;
 
-import org.apache.neethi.PolicyComponent;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
-public class SignatureToken extends AbstractSecurityAssertion implements TokenWrapper {
+public class SignatureToken implements TokenWrapper {
 
     private Token signatureToken;
 
@@ -45,30 +39,6 @@
      */
     public void setToken(Token tok) {
         this.setSignatureToken(tok);
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.neethi.Assertion#getName()
-     */
-    public QName getName() {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.neethi.Assertion#normalize()
-     */
-    public PolicyComponent normalize() {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.neethi.PolicyComponent#serialize(javax.xml.stream.XMLStreamWriter)
-     */
-    public void serialize(XMLStreamWriter writer) throws XMLStreamException {
-        // TODO TODO
-        throw new UnsupportedOperationException("TODO");
     }
     
     

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SupportingToken.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SupportingToken.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SupportingToken.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SupportingToken.java Tue Aug 22 12:02:10 2006
@@ -26,16 +26,16 @@
 import org.apache.neethi.PolicyComponent;
 import org.apache.ws.secpolicy.Constants;
 
-public class SupportingToken extends AbstractSecurityAssertion implements
-        AlgorithmWrapper, TokenWrapper, Assertion {
+public class SupportingToken implements AlgorithmWrapper, TokenWrapper,
+        Assertion {
 
     /**
      * Type of SupportingToken
-     *
-     * @see Constants#SUPPORTING_TOKEN_SUPPORTING
-     * @see Constants#SUPPORTING_TOKEN_SIGNED
-     * @see Constants#SUPPORTING_TOKEN_ENDORSING
-     * @see Constants#SUPPORTING_TOKEN_SIGNED_ENDORSING
+     * 
+     * @see SupportingToken#SUPPORTING
+     * @see SupportingToken#ENDORSING
+     * @see SupportingToken#SIGNED
+     * @see SupportingToken#SIGNED_ENDORSING
      */
     private int type;
 

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SymmetricBinding.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SymmetricBinding.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SymmetricBinding.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SymmetricBinding.java Tue Aug 22 12:02:10 2006
@@ -17,7 +17,6 @@
 package org.apache.ws.secpolicy.model;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import javax.xml.namespace.QName;
@@ -25,6 +24,7 @@
 import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.neethi.PolicyComponent;
+import org.apache.ws.secpolicy.Constants;
 
 public class SymmetricBinding extends SymmetricAsymmetricBindingBase {
 
@@ -34,7 +34,7 @@
     
     private ProtectionToken protectionToken;
     
-    private List symmetricBindings = new ArrayList();
+    private List symmetricBindings = null;
     
     /**
      * @return Returns the encryptionToken.
@@ -91,28 +91,33 @@
         this.signatureToken = signatureToken;
     }
     
-    public Iterator getOptions() {
-        return symmetricBindings.iterator();
+    public List getConfigurations() {
+        return symmetricBindings;
     }
     
-    public void addOption(SymmetricBinding symmetricBinding) {
+    public SymmetricBinding getDefaultConfiguration() {
+        if (symmetricBindings != null) {
+            return (SymmetricBinding) symmetricBindings.get(0);
+        }
+        return null;
+    }
+    
+    public void addConfiguration(SymmetricBinding symmetricBinding) {
+        if (symmetricBindings == null) {
+            symmetricBindings = new ArrayList();
+        }
         symmetricBindings.add(symmetricBinding);
     }
 
     public QName getName() {
-        // TODO Auto-generated method stub
-        return null;
+        return Constants.SYMMETRIC_BINDING;
     }
 
     public PolicyComponent normalize() {
-        // TODO Auto-generated method stub
-        return null;
+        throw new UnsupportedOperationException();
     }
 
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
-        // TODO Auto-generated method stub
-        
+        throw new UnsupportedOperationException();        
     }
-    
-    
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportBinding.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportBinding.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportBinding.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportBinding.java Tue Aug 22 12:02:10 2006
@@ -46,11 +46,18 @@
         this.transportToken = transportToken;
     }
     
-    public List getOptions() {
+    public List getConfigurations() {
         return transportBindings;
     }
     
-    public void addOption(TransportBinding transportBinding) {
+    public TransportBinding getDefaultConfiguration() {
+        if (transportBindings != null) {
+            return (TransportBinding) transportBindings.get(0);
+        }
+        return null;
+    }
+    
+    public void addConfiguration(TransportBinding transportBinding) {
         if (transportBindings == null) {
             transportBindings = new ArrayList();
         }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java Tue Aug 22 12:02:10 2006
@@ -48,11 +48,18 @@
         this.transportToken = transportToken;
     }
     
-    public Iterator getOptions() {
+    public Iterator getConfigurations() {
         return transportTokens.iterator();
     }
     
-    public void addOption(TransportToken transportToken) {
+    public TransportToken getDefaultConfiguration() {
+        if (transportTokens != null) {
+            return (TransportToken) transportTokens.get(0);
+        }
+        return null;
+    }
+    
+    public void addConfiguration(TransportToken transportToken) {
         transportTokens.add(transportToken);
     }
 
@@ -61,13 +68,11 @@
     }
 
     public boolean isOptional() {
-        // TODO Auto-generated method stub
-        return false;
+        throw new UnsupportedOperationException();
     }
 
     public PolicyComponent normalize() {
-        // TODO Auto-generated method stub
-        return null;
+        throw new UnsupportedOperationException();
     }
 
     public short getType() {
@@ -75,7 +80,7 @@
     }
 
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
-        // TODO Auto-generated method stub
+        throw new UnsupportedOperationException();
         
     }
     

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/UsernameToken.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/UsernameToken.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/UsernameToken.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/UsernameToken.java Tue Aug 22 12:02:10 2006
@@ -46,11 +46,18 @@
         this.useUTProfile11 = useUTProfile11;
     }
     
-    public List getOptions() {
+    public List getConfigurations() {
         return usernameTokens;
     }
     
-    public void addOption(UsernameToken usernameToken) {
+    public UsernameToken getDefaultConfiguration() {
+        if (usernameTokens != null) {
+            return (UsernameToken) usernameTokens.get(0);
+        }
+        return null;
+    }
+    
+    public void addConfiguration(UsernameToken usernameToken) {
         if (usernameTokens == null) {
             usernameTokens= new ArrayList();
         }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Wss10.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Wss10.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Wss10.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Wss10.java Tue Aug 22 12:02:10 2006
@@ -16,13 +16,25 @@
 
 package org.apache.ws.secpolicy.model;
 
-public class Wss10 {
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.neethi.PolicyComponent;
+import org.apache.ws.secpolicy.Constants;
+
+public class Wss10 extends AbstractSecurityAssertion {
     
     private boolean mustSupportRefKeyIdentifier;
     private boolean MustSupportRefIssuerSerial;
     private boolean MustSupportRefExternalURI;
     private boolean MustSupportRefEmbeddedToken;
     
+    private ArrayList wss10s = null;
+    
     /**
      * @return Returns the mustSupportRefEmbeddedToken.
      */
@@ -72,4 +84,33 @@
         this.mustSupportRefKeyIdentifier = mustSupportRefKeyIdentifier;
     }
     
+    public List getConfiguration() {
+        return wss10s;
+    }
+    
+    public Wss10 getDefaultConfiguration() {
+        if (wss10s != null) {
+            wss10s = new ArrayList();
+        }
+        return null;
+    }
+    
+    public void addConfiguration(Wss10 wss10) {
+        if (wss10s == null) {
+            wss10s = new ArrayList();
+        }
+        wss10s.add(wss10);
+    }
+    
+    public QName getName() {
+        return Constants.WSS10;
+    }
+    
+    public PolicyComponent normalize() {
+        throw new UnsupportedOperationException();
+    }
+    
+    public void serialize(XMLStreamWriter writer) throws XMLStreamException {
+        throw new UnsupportedOperationException();
+    }
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/X509Token.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/X509Token.java?rev=433727&r1=433726&r2=433727&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/X509Token.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/X509Token.java Tue Aug 22 12:02:10 2006
@@ -39,7 +39,7 @@
     
     private String tokenVersionAndType;
     
-    private List x509Tokens = new ArrayList();
+    private List x509Tokens = null;
     
     /**
      * @return Returns the requireEmbeddedTokenReference.
@@ -113,11 +113,23 @@
         this.tokenVersionAndType = tokenVersionAndType;
     }
     
-    public Iterator getOptions() {
+    public Iterator getConfigurations() {
         return x509Tokens.iterator();
     }
     
-    public void addOption(X509Token token) {
+    public X509Token getDefualtConfiguration() {
+        
+        if (x509Tokens != null) {
+            return (X509Token) x509Tokens.get(0);
+        }
+        return null;
+    }
+    
+    public void addConfiguration(X509Token token) {
+        
+        if (x509Tokens == null) {
+            x509Tokens = new ArrayList();
+        }
         x509Tokens.add(token);
     }
 
@@ -132,7 +144,5 @@
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
         throw new UnsupportedOperationException();
     }
-    
-    
-    
+       
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org