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 sa...@apache.org on 2006/09/06 09:47:31 UTC

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

Author: sanka
Date: Wed Sep  6 00:47:29 2006
New Revision: 440647

URL: http://svn.apache.org/viewvc?view=rev&rev=440647
Log:
Update the Builders to reflect the changes in the latest Neethi codebase. Also implemented normlize() for all the necessary secuirty assertions

Modified:
    webservices/axis2/trunk/java/modules/secpolicy/maven.xml
    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/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/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/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/RecipientTokenBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SecureConversationTokenBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SecurityContextTokenBuilder.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/SymmetricBindingBuilder.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/Trust10Builder.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/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
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AbstractConfigurableSecurityAssertion.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.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/ProtectionToken.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignedEncryptedElements.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignedEncryptedParts.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/Trust10.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Wss10.java

Modified: webservices/axis2/trunk/java/modules/secpolicy/maven.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/maven.xml?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/maven.xml (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/maven.xml Wed Sep  6 00:47:29 2006
@@ -8,4 +8,13 @@
     xmlns:maven="jelly:maven"
     xmlns:deploy="deploy"
     xmlns:ant="jelly:ant">
+    
+    <preGoal name="java:compile" >
+    	<copy toDir="target/classes/META-INF/">
+		<fileset dir="src/META-INF">
+			<include name="**/services/*"/>
+		</fileset>
+        </copy>
+    </preGoal>
+    
 </project>

Modified: 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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/META-INF/services/org.apache.neethi.builders.AssertionBuilder (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/META-INF/services/org.apache.neethi.builders.AssertionBuilder Wed Sep  6 00:47:29 2006
@@ -18,4 +18,4 @@
 org.apache.ws.secpolicy.builders.Trust10Builder
 org.apache.ws.secpolicy.builders.SecurityContextTokenBuilder
 org.apache.ws.secpolicy.builders.SecureConversationTokenBuilder
-
+org.apache.ws.secpolicy.builders.SymmetricBindingBuilder
\ No newline at end of file

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -59,6 +59,9 @@
      */
     public final static String SIGN_BEFORE_ENCRYPTING = "SignBeforeEncrypting";
     
+    public final static String ONLY_SIGN_ENTIRE_HEADERS_AND_BODY = "OnlySignEntireHeadersAndBody";
+    
+    
     public final static String WSS_X509_V1_TOKEN10 = "WssX509V1Token10";
     
     public final static String WSS_X509_V3_TOKEN10 = "WssX509V3Token10";
@@ -278,5 +281,4 @@
     public static final QName SC10_SECURITY_CONTEXT_TOKEN = new QName(Constants.SP_NS, "SC10SecurityContextToken");
     
     public static final QName BOOTSTRAP_POLICY = new QName(Constants.SP_NS, "BootstrapPolicy");
-    
 }

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -129,7 +129,7 @@
         target.addConfiguration(algorithmSuite);
     }
 
-    public QName getKnownElement() {
-        return Constants.ALGORITHM_SUITE;
+    public QName[] getKnownElements() {
+        return new QName[] {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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -78,17 +78,20 @@
             } else if (Constants.INCLUDE_TIMESTAMP.equals(name)) {
                 asymmetricBinding.setIncludeTimestamp(true);
                 
-            } else if (Constants.ENCRYPT_BEFORE_SIGNING.equals(name)) {
+            } else if (Constants.ENCRYPT_BEFORE_SIGNING.equals(name.getLocalPart())) {
                 asymmetricBinding.setProtectionOrder(Constants.ENCRYPT_BEFORE_SIGNING);
                 
-            } else if (Constants.SIGN_BEFORE_ENCRYPTING.equals(name)) {
+            } else if (Constants.SIGN_BEFORE_ENCRYPTING.equals(name.getLocalPart())) {
                 asymmetricBinding.setProtectionOrder(Constants.SIGN_BEFORE_ENCRYPTING);
-            }  
+                
+            } else if (Constants.ONLY_SIGN_ENTIRE_HEADERS_AND_BODY.equals(name.getLocalPart())) {
+                asymmetricBinding.setEntireHeaderAndBodySignatures(true);
+            }
         }
     }
     
-    public QName getKnownElement() {
-        return Constants.ASYMMETRIC_BINDING;
+    public QName[] getKnownElements() {
+        return new QName[]{Constants.ASYMMETRIC_BINDING};
     }
     
 }

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -49,8 +49,8 @@
     
     
     
-    public QName getKnownElement() {
-        return Constants.ENCRYPTED_ELEMENTS;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.ENCRYPTED_ELEMENTS};
     }
 
 

Modified: 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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java Wed Sep  6 00:47:29 2006
@@ -47,8 +47,8 @@
         return signedEncryptedParts;
     }
     
-    public QName getKnownElement() {
-        return Constants.ENCRYPTED_PARTS;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.ENCRYPTED_PARTS};
     }
 
     private void processElement(OMElement element, SignedEncryptedParts parent) {

Modified: 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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/InitiatorTokenBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/InitiatorTokenBuilder.java Wed Sep  6 00:47:29 2006
@@ -60,8 +60,8 @@
         }
     }
 
-    public QName getKnownElement() {
-        return Constants.INITIATOR_TOKEN;
+    public QName[] getKnownElements() {
+        return new QName[] {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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -50,8 +50,8 @@
         return layout;
     }
     
-    public QName getKnownElement() {
-        return Constants.LAYOUT;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.LAYOUT};
     }
 
     public void processAlternative(List assertions, Layout parent) {

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -46,8 +46,8 @@
         return protectionToken;
     }
         
-    public QName getKnownElement() {
-        return Constants.PROTECTION_TOKEN;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.PROTECTION_TOKEN};
     }
 
     private void processAlternative(List assertions, ProtectionToken parent) {

Modified: 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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java Wed Sep  6 00:47:29 2006
@@ -64,8 +64,8 @@
         }        
     }
     
-    public QName getKnownElement() {
-        return Constants.RECIPIENT_TOKEN;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.RECIPIENT_TOKEN};
     }
 
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SecureConversationTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SecureConversationTokenBuilder.java?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SecureConversationTokenBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SecureConversationTokenBuilder.java Wed Sep  6 00:47:29 2006
@@ -86,8 +86,8 @@
         return conversationToken;
     }
 
-    public QName getKnownElement() {
-        return Constants.SECURE_CONVERSATION_TOKEN;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.SECURE_CONVERSATION_TOKEN};
     }
 
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SecurityContextTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SecurityContextTokenBuilder.java?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SecurityContextTokenBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SecurityContextTokenBuilder.java Wed Sep  6 00:47:29 2006
@@ -76,8 +76,8 @@
         return contextToken;
     }
 
-    public QName getKnownElement() {
-        return Constants.SECURE_CONVERSATION_TOKEN;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.SECURE_CONVERSATION_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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -48,8 +48,8 @@
         return signedEncryptedElements;
     }
         
-    public QName getKnownElement() {
-        return Constants.SIGNED_ELEMENTS;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.SIGNED_ELEMENTS};
     }
 
     private void processElement(OMElement element, SignedEncryptedElements parent) {

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -44,8 +44,8 @@
         return signedEncryptedParts;
     }
        
-    public QName getKnownElement() {
-        return Constants.SIGNED_PARTS;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.SIGNED_PARTS};
     }
 
     private void processElement(OMElement element, SignedEncryptedParts parent) {

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -59,19 +59,25 @@
 
         for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
             processAlternative((List) iterator.next(), supportingToken);
+            
+            /*
+             * for the moment we will say there should be only one alternative 
+             */
+            break;            
         }
 
         return supportingToken;
     }
 
-    public QName getKnownElement() {
-        return Constants.SUPPORIING_TOKENS;
+    public QName[] getKnownElements() {
+        return new QName[] { Constants.SUPPORIING_TOKENS,
+                Constants.SIGNED_SUPPORTING_TOKENS,
+                Constants.ENDORSING_SUPPORTING_TOKENS,
+                Constants.SIGNED_ENDORSING_SUPPORTING_TOKENS};
     }
 
-    private void processAlternative(List assertions, SupportingToken parent) {
-        SupportingToken supportingToken = new SupportingToken(parent
-                .getTokenType());
-
+    private void processAlternative(List assertions, SupportingToken supportingToken) {
+        
         for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
 
             Assertion primitive = (Assertion) iterator.next();
@@ -100,8 +106,5 @@
                 supportingToken.addToken((Token) primitive);
             }
         }
-
-        parent.addConfiguration(supportingToken);
     }
-
 }

Modified: 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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java Wed Sep  6 00:47:29 2006
@@ -27,18 +27,18 @@
 import org.apache.neethi.PolicyEngine;
 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.AlgorithmSuite;
+import org.apache.ws.secpolicy.model.Layout;
 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();
+        SymmetricBinding symmetricBinding = new SymmetricBinding(); 
         
         Policy policy = PolicyEngine.getPolicy(element);
-        policy = (Policy) policy.normalize();
+        policy = (Policy) policy.normalize(false);
         
         for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
             processAlternatives((List) iterator.next(), symmetricBinding);
@@ -51,11 +51,11 @@
         return symmetricBinding;
     }
 
-    public QName getKnownElement() {
-        return Constants.SYMMETRIC_BINDING;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.SYMMETRIC_BINDING};
     }
     
-    private void processAlternatives(List assertions, SymmetricBinding parent) {
+    private void processAlternatives(List assertions, SymmetricBinding symmetricBinding) {
         Assertion assertion;
         QName name;
         
@@ -63,15 +63,26 @@
             assertion = (Assertion) iterator.next();
             name = assertion.getName();
             
-            if (Constants.ENCRYPTION_TOKEN.equals(name)) {
-                parent.setEncryptionToken((EncryptionToken) assertion);
+            if (Constants.ALGORITHM_SUITE.equals(name)) {
+                symmetricBinding.setAlgorithmSuite((AlgorithmSuite) assertion);
                 
-            } else if (Constants.SIGNATURE_TOKEN.equals(name)) {
-                parent.setSignatureToken((SignatureToken) assertion);
+            } else if (Constants.LAYOUT.equals(name)) {
+                symmetricBinding.setLayout((Layout) assertion);
+                
+            } else if (Constants.INCLUDE_TIMESTAMP.equals(name)) {
+                symmetricBinding.setIncludeTimestamp(true);
                 
             } else if (Constants.PROTECTION_TOKEN.equals(name)) {
-                parent.setProtectionToken((ProtectionToken) assertion);
+                symmetricBinding.setProtectionToken((ProtectionToken) assertion);
+                
+            } else if (Constants.ENCRYPT_BEFORE_SIGNING.equals(name.getLocalPart())) {
+                symmetricBinding.setProtectionOrder(Constants.ENCRYPT_BEFORE_SIGNING);
+                
+            } else if (Constants.SIGN_BEFORE_ENCRYPTING.equals(name.getLocalPart())) {
+                symmetricBinding.setProtectionOrder(Constants.SIGN_BEFORE_ENCRYPTING);
                 
+            } else if (Constants.ONLY_SIGN_ENTIRE_HEADERS_AND_BODY.equals(name.getLocalPart())) {
+                symmetricBinding.setEntireHeaderAndBodySignatures(true);
             }
         }        
     }

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -54,8 +54,8 @@
         return transportBinding;
     }
     
-    public QName getKnownElement() {
-        return Constants.TRANSPORT_BINDING;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.TRANSPORT_BINDING};
     }
 
     private void processAlternative(List assertionList, TransportBinding parent, AssertionBuilderFactory factory) {

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -49,8 +49,8 @@
         return transportToken;
     }
         
-    public QName getKnownElement() {
-        return Constants.TRANSPORT_TOKEN;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.TRANSPORT_TOKEN};
     }
     
     private void processAlternative(List assertions, TransportToken parent) {

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/Trust10Builder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/Trust10Builder.java?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/Trust10Builder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/Trust10Builder.java Wed Sep  6 00:47:29 2006
@@ -63,8 +63,8 @@
         return trust10;
     }
 
-    public QName getKnownElement() {
-        return Constants.TRUST_10;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.TRUST_10};
     }
 
 }

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -67,8 +67,8 @@
         return usernameToken;
     }
         
-    public QName getKnownElement() {
-        return Constants.USERNAME_TOKEN;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.USERNAME_TOKEN};
     }
 
     private void processAlternative(List assertions, UsernameToken parent) {
@@ -78,8 +78,8 @@
             QName qname = assertion.getName();
             
             if (Constants.WSS_USERNAME_TOKEN10.equals(qname)) {
-                parent.setUseUTProfile11(false)
-                ;                
+                parent.setUseUTProfile11(false);
+                
             } else if (Constants.WSS_USERNAME_TOKEN11.equals(qname)) {
                 parent.setUseUTProfile11(true);
             }

Modified: 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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java Wed Sep  6 00:47:29 2006
@@ -50,8 +50,8 @@
         return wss10;
     }
 
-    public QName getKnownElement() {
-        return Constants.WSS10;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.WSS10};
     }
     
     private void processAlternative(List assertions, Wss10 parent) {

Modified: 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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java Wed Sep  6 00:47:29 2006
@@ -49,8 +49,8 @@
         return wss11;
     }
 
-    public QName getKnownElement() {
-        return Constants.WSS11;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.WSS11};
     }
 
     private void processAlternative(List assertions, Wss11 parent) {

Modified: 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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/X509TokenBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/X509TokenBuilder.java Wed Sep  6 00:47:29 2006
@@ -105,7 +105,7 @@
         }
     }
 
-    public QName getKnownElement() {
-        return Constants.X509_TOKEN;
+    public QName[] getKnownElements() {
+        return new QName[] {Constants.X509_TOKEN};
     }
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AbstractConfigurableSecurityAssertion.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AbstractConfigurableSecurityAssertion.java?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AbstractConfigurableSecurityAssertion.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AbstractConfigurableSecurityAssertion.java Wed Sep  6 00:47:29 2006
@@ -22,7 +22,7 @@
 
 public abstract class AbstractConfigurableSecurityAssertion extends AbstractSecurityAssertion {
     
-    private ArrayList configurations = null;
+    protected ArrayList configurations = null;
     
     public void addConfiguration(Assertion assertion) {
         if (configurations == null) {

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java Wed Sep  6 00:47:29 2006
@@ -19,6 +19,8 @@
 import org.apache.neethi.PolicyComponent;
 
 public abstract class AbstractSecurityAssertion implements Assertion{
+    
+    private boolean normalized = false;
 
     private boolean isOptional;
 
@@ -37,5 +39,12 @@
     public boolean equal(PolicyComponent policyComponent) {
         throw new UnsupportedOperationException();
     }
-
+    
+    public void setNormalized(boolean normalized) {
+        this.normalized = normalized;
+    }
+    
+    public boolean isNormalized() {
+        return normalized;
+    }
 }

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -15,52 +15,58 @@
  */
 package org.apache.ws.secpolicy.model;
 
+import java.util.Iterator;
+
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.neethi.All;
+import org.apache.neethi.ExactlyOne;
+import org.apache.neethi.Policy;
 import org.apache.neethi.PolicyComponent;
 import org.apache.ws.secpolicy.Constants;
 import org.apache.ws.secpolicy.WSSPolicyException;
 
 public class AlgorithmSuite extends AbstractConfigurableSecurityAssertion {
-    
+
     private String symmetricSignature = Constants.HMAC_SHA1;
-    
+
     private String asymmetricSignature = Constants.RSA_SHA1;
 
     private String computedKey = Constants.P_SHA1;
 
     private int maximumSymmetricKeyLength = 256;
-    
+
     private int minimumAsymmetricKeyLength = 1024;
-    
+
     private int maximumAsymmetricKeyLength = 4096;
 
     private String digest;
-    
+
     private String encryption;
-    
+
     private String symmetricKeyWrap;
-    
+
     private String asymmetricKeyWrap;
-    
+
     private String encryptionKeyDerivation;
-    
+
     private String signatureKeyDerivation;
-    
+
     private int minimumSymmetricKeyLength;
-    
+
     private String c14n = Constants.EX_C14N;
-    
+
     private String soapNormalization;
 
     private String strTransform;
-    
+
     private String xPath;
-    
+
     /**
      * Set the algorithm suite
+     * 
      * @param algoSuite
      * @throws WSSPolicyException
      * @see Constants#ALGO_SUITE_BASIC128
@@ -81,8 +87,8 @@
      * @see Constants#ALGO_SUITE_TRIPLE_DES_SHA256_RSA15
      */
     public void setAlgorithmSuite(String algoSuite) {
-        //TODO: Optimize this :-)
-        if(Constants.ALGO_SUITE_BASIC256.equals(algoSuite)) {
+        // TODO: Optimize this :-)
+        if (Constants.ALGO_SUITE_BASIC256.equals(algoSuite)) {
             this.digest = Constants.SHA1;
             this.encryption = Constants.AES256;
             this.symmetricKeyWrap = Constants.KW_AES256;
@@ -106,7 +112,7 @@
             this.encryptionKeyDerivation = Constants.P_SHA1_L128;
             this.signatureKeyDerivation = Constants.P_SHA1_L128;
             this.minimumSymmetricKeyLength = 128;
-        } else if(Constants.ALGO_SUITE_TRIPLE_DES.equals(algoSuite)) {
+        } else if (Constants.ALGO_SUITE_TRIPLE_DES.equals(algoSuite)) {
             this.digest = Constants.SHA1;
             this.encryption = Constants.TRIPLE_DES;
             this.symmetricKeyWrap = Constants.KW_TRIPLE_DES;
@@ -146,7 +152,7 @@
             this.encryptionKeyDerivation = Constants.P_SHA1_L192;
             this.signatureKeyDerivation = Constants.P_SHA1_L192;
             this.minimumSymmetricKeyLength = 192;
-        } else if(Constants.ALGO_SUITE_BASIC256_SHA256.equals(algoSuite)) {
+        } else if (Constants.ALGO_SUITE_BASIC256_SHA256.equals(algoSuite)) {
             this.digest = Constants.SHA256;
             this.encryption = Constants.AES256;
             this.symmetricKeyWrap = Constants.KW_AES256;
@@ -170,7 +176,7 @@
             this.encryptionKeyDerivation = Constants.P_SHA1_L128;
             this.signatureKeyDerivation = Constants.P_SHA1_L128;
             this.minimumSymmetricKeyLength = 128;
-        } else if(Constants.ALGO_SUITE_TRIPLE_DES_SHA256.equals(algoSuite)) {
+        } else if (Constants.ALGO_SUITE_TRIPLE_DES_SHA256.equals(algoSuite)) {
             this.digest = Constants.SHA256;
             this.encryption = Constants.TRIPLE_DES;
             this.symmetricKeyWrap = Constants.KW_TRIPLE_DES;
@@ -178,7 +184,7 @@
             this.encryptionKeyDerivation = Constants.P_SHA1_L192;
             this.signatureKeyDerivation = Constants.P_SHA1_L192;
             this.minimumSymmetricKeyLength = 192;
-        }  else if (Constants.ALGO_SUITE_BASIC256_SHA256_RSA15.equals(algoSuite)) {
+        } else if (Constants.ALGO_SUITE_BASIC256_SHA256_RSA15.equals(algoSuite)) {
             this.digest = Constants.SHA256;
             this.encryption = Constants.AES256;
             this.symmetricKeyWrap = Constants.KW_AES256;
@@ -202,7 +208,8 @@
             this.encryptionKeyDerivation = Constants.P_SHA1_L128;
             this.signatureKeyDerivation = Constants.P_SHA1_L128;
             this.minimumSymmetricKeyLength = 128;
-        } else if (Constants.ALGO_SUITE_TRIPLE_DES_SHA256_RSA15.equals(algoSuite)) {
+        } else if (Constants.ALGO_SUITE_TRIPLE_DES_SHA256_RSA15
+                .equals(algoSuite)) {
             this.digest = Constants.SHA256;
             this.encryption = Constants.TRIPLE_DES;
             this.symmetricKeyWrap = Constants.KW_TRIPLE_DES;
@@ -211,7 +218,8 @@
             this.signatureKeyDerivation = Constants.P_SHA1_L192;
             this.minimumSymmetricKeyLength = 192;
         } else {
-//            throw new WSSPolicyException("Invalid algorithm suite : " + algoSuite);
+            // throw new WSSPolicyException("Invalid algorithm suite : " +
+            // algoSuite);
         }
     }
 
@@ -314,10 +322,11 @@
     }
 
     /**
-     * @param c14n The c14n to set.
+     * @param c14n
+     *            The c14n to set.
      */
     public void setC14n(String c14n) {
-            this.c14n = c14n;
+        this.c14n = c14n;
     }
 
     /**
@@ -328,10 +337,11 @@
     }
 
     /**
-     * @param soapNormalization The soapNormalization to set.
+     * @param soapNormalization
+     *            The soapNormalization to set.
      */
     public void setSoapNormalization(String soapNormalization) {
-            this.soapNormalization = soapNormalization;
+        this.soapNormalization = soapNormalization;
     }
 
     /**
@@ -342,10 +352,11 @@
     }
 
     /**
-     * @param strTransform The strTransform to set.
+     * @param strTransform
+     *            The strTransform to set.
      */
     public void setStrTransform(String strTransform) {
-            this.strTransform = strTransform;
+        this.strTransform = strTransform;
     }
 
     /**
@@ -356,20 +367,22 @@
     }
 
     /**
-     * @param path The xPath to set.
+     * @param path
+     *            The xPath to set.
      */
     public void setXPath(String path) {
         xPath = path;
     }
-    
+
     public QName getName() {
         return Constants.ALGORITHM_SUITE;
     }
-    
+
     public PolicyComponent normalize() {
-        throw new UnsupportedOperationException();
+        throw new UnsupportedOperationException(
+                "AlgorithmSuite.normalize() is not supported");
     }
-    
+
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
         throw new UnsupportedOperationException();
     }

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -16,10 +16,16 @@
 
 package org.apache.ws.secpolicy.model;
 
+import java.util.Iterator;
+import java.util.List;
+
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.neethi.All;
+import org.apache.neethi.ExactlyOne;
+import org.apache.neethi.Policy;
 import org.apache.neethi.PolicyComponent;
 import org.apache.ws.secpolicy.Constants;
 
@@ -58,12 +64,46 @@
         return Constants.ASYMMETRIC_BINDING;
     }
     public PolicyComponent normalize() {
-        throw new UnsupportedOperationException();
+        
+        if (isNormalized()) {
+            return this;
+        }
+        
+        AlgorithmSuite algorithmSuite = getAlgorithmSuite();
+        List configs = algorithmSuite.getConfigurations();
+        
+        Policy policy = new Policy();
+        ExactlyOne exactlyOne = new ExactlyOne();
+        
+        policy.addPolicyComponent(exactlyOne);
+        
+        All wrapper;
+        AsymmetricBinding asymmetricBinding;
+        
+        for (Iterator iterator = configs.iterator(); iterator.hasNext();) {
+            wrapper = new All();
+            asymmetricBinding = new AsymmetricBinding();
+            
+            asymmetricBinding.setAlgorithmSuite((AlgorithmSuite) iterator.next());
+            asymmetricBinding.setEntireHeaderAndBodySignatures(isEntireHeaderAndBodySignatures());
+            asymmetricBinding.setIncludeTimestamp(isIncludeTimestamp());
+            asymmetricBinding.setInitiatorToken(getInitiatorToken());
+            asymmetricBinding.setLayout(getLayout());
+            asymmetricBinding.setProtectionOrder(getProtectionOrder());
+            asymmetricBinding.setRecipientToken(getRecipientToken());
+            asymmetricBinding.setSignatureProtection(isSignatureProtection());
+            asymmetricBinding.setSignedEndorsingSupportingTokens(getSignedEndorsingSupportingTokens());
+            asymmetricBinding.setTokenProtection(isTokenProtection());
+            
+            asymmetricBinding.setNormalized(true);
+            wrapper.addPolicyComponent(wrapper);
+        }
+        
+        return policy; 
+        
     }
+    
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
         throw new UnsupportedOperationException();
     }
-    
-    
-    
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/ProtectionToken.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/ProtectionToken.java?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/ProtectionToken.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/ProtectionToken.java Wed Sep  6 00:47:29 2006
@@ -50,8 +50,11 @@
     }
 
     public PolicyComponent normalize() {
-        // TODO Auto-generated method stub
-        return null;
+        /*
+         *  ProtectionToken can not contain multiple values. Hence we consider it
+         *  to always be in the normalized format.
+         */
+        return this;
     }
 
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignedEncryptedElements.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignedEncryptedElements.java?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignedEncryptedElements.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignedEncryptedElements.java Wed Sep  6 00:47:29 2006
@@ -74,20 +74,17 @@
 
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
         throw new UnsupportedOperationException();
-        
     }
 
     public QName getName() {
         if (signedElemets) {
             return Constants.SIGNED_ELEMENTS;
         } 
+        
         return Constants.ENCRYPTED_ELEMENTS;
     }
 
     public PolicyComponent normalize() {
-        throw new UnsupportedOperationException();
-    }
-    
-    
-    
+        return this;
+    }  
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignedEncryptedParts.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignedEncryptedParts.java?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignedEncryptedParts.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/SignedEncryptedParts.java Wed Sep  6 00:47:29 2006
@@ -80,7 +80,7 @@
     }
 
     public PolicyComponent normalize() {
-        throw new UnsupportedOperationException();
+        return this;
     }
 
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -26,7 +26,7 @@
 import org.apache.neethi.PolicyComponent;
 import org.apache.ws.secpolicy.Constants;
 
-public class SupportingToken extends AbstractConfigurableSecurityAssertion
+public class SupportingToken extends AbstractSecurityAssertion
         implements AlgorithmWrapper, TokenWrapper {
 
     /**
@@ -182,14 +182,8 @@
         }
     }
 
-    public boolean isOptional() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
     public PolicyComponent normalize() {
-        // TODO Auto-generated method stub
-        return null;
+        return this;
     }
 
     public short getType() {
@@ -197,7 +191,6 @@
     }
 
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
-        // TODO Auto-generated method stub
-
+        throw new UnsupportedOperationException("not yet implemented");
     }
 }

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -16,10 +16,16 @@
 
 package org.apache.ws.secpolicy.model;
 
+import java.util.Iterator;
+import java.util.List;
+
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.neethi.All;
+import org.apache.neethi.ExactlyOne;
+import org.apache.neethi.Policy;
 import org.apache.neethi.PolicyComponent;
 import org.apache.ws.secpolicy.Constants;
 
@@ -91,7 +97,50 @@
     }
 
     public PolicyComponent normalize() {
-        throw new UnsupportedOperationException();
+        if (isNormalized()) {
+            return this;
+        }
+        
+        AlgorithmSuite algorithmSuite = getAlgorithmSuite();
+        List configurations = algorithmSuite.getConfigurations();
+        
+        if (configurations == null && configurations.size() == 1) {
+            setNormalized(true);
+            return this;
+        }
+        
+        Policy policy = new Policy();
+        ExactlyOne exactlyOne = new ExactlyOne();
+        
+        All wrapper;
+        SymmetricBinding symmetricBinding;
+        
+        for (Iterator iterator = configurations.iterator(); iterator.hasNext();) {
+            wrapper = new All();
+            symmetricBinding = new SymmetricBinding();
+            
+            algorithmSuite = (AlgorithmSuite) iterator.next();
+            symmetricBinding.setAlgorithmSuite(algorithmSuite);
+            
+            symmetricBinding.setEncryptionToken(getEncryptionToken());
+            symmetricBinding.setEntireHeaderAndBodySignatures(isEntireHeaderAndBodySignatures());
+            symmetricBinding.setIncludeTimestamp(isIncludeTimestamp());
+            symmetricBinding.setLayout(getLayout());
+            symmetricBinding.setProtectionOrder(getProtectionOrder());
+            symmetricBinding.setProtectionToken(getProtectionToken());
+            symmetricBinding.setSignatureProtection(isSignatureProtection());
+            symmetricBinding.setSignatureToken(getSignatureToken());
+            symmetricBinding.setSignedEndorsingSupportingTokens(getSignedEndorsingSupportingTokens());
+            symmetricBinding.setSignedSupportingToken(getSignedSupportingToken());
+            symmetricBinding.setTokenProtection(isTokenProtection());
+            
+            symmetricBinding.setNormalized(true);
+            wrapper.addPolicyComponent(symmetricBinding);
+            exactlyOne.addPolicyComponent(wrapper);
+        }
+        
+        policy.addPolicyComponent(exactlyOne);
+        return policy;
     }
 
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -17,12 +17,16 @@
 package org.apache.ws.secpolicy.model;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.neethi.All;
+import org.apache.neethi.ExactlyOne;
+import org.apache.neethi.Policy;
 import org.apache.neethi.PolicyComponent;
 import org.apache.ws.secpolicy.Constants;
 
@@ -69,7 +73,42 @@
     }
 
     public PolicyComponent normalize() {
-        throw new UnsupportedOperationException();
+        if (isNormalized()) {
+            return this;
+        }
+        
+        AlgorithmSuite algorithmSuite = getAlgorithmSuite();
+        List configurations = algorithmSuite.getConfigurations();
+        
+        if (configurations != null && configurations.size() == 1) {
+            setNormalized(true);
+            return this;
+        }
+        
+        Policy policy = new Policy();
+        ExactlyOne exactlyOne = new ExactlyOne();
+        
+        All wrapper;
+        TransportBinding transportBinding;
+        
+        for (Iterator iterator = configurations.iterator(); iterator.hasNext();) {
+            wrapper = new All();
+            transportBinding = new TransportBinding();
+            
+            algorithmSuite = (AlgorithmSuite) iterator.next();
+            transportBinding.setAlgorithmSuite(algorithmSuite);
+            transportBinding.setIncludeTimestamp(isIncludeTimestamp());
+            transportBinding.setLayout(getLayout());
+            transportBinding.setSignedEndorsingSupportingTokens(getSignedEndorsingSupportingTokens());
+            transportBinding.setSignedSupportingToken(getSignedSupportingToken());
+            transportBinding.setTransportToken(getTransportToken());
+            
+            wrapper.addPolicyComponent(transportBinding);
+            exactlyOne.addPolicyComponent(wrapper);
+        }
+        
+        policy.addPolicyComponent(exactlyOne);
+        return policy;
     }
     
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Trust10.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Trust10.java?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Trust10.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Trust10.java Wed Sep  6 00:47:29 2006
@@ -20,6 +20,7 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.neethi.Assertion;
 import org.apache.neethi.PolicyComponent;
 import org.apache.ws.secpolicy.Constants;
 
@@ -119,17 +120,10 @@
         throw new UnsupportedOperationException("TODO Sanka");
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.neethi.Assertion#normalize()
-     */
     public PolicyComponent normalize() {
-        // TODO TODO Sanka
-        throw new UnsupportedOperationException("TODO Sanka");
+        return this;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.neethi.PolicyComponent#serialize(javax.xml.stream.XMLStreamWriter)
-     */
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
         // TODO TODO Sanka
         throw new UnsupportedOperationException("TODO Sanka");
@@ -139,8 +133,7 @@
      * @see org.apache.neethi.PolicyComponent#getType()
      */
     public short getType() {
-        // TODO TODO Sanka
-        throw new UnsupportedOperationException("TODO Sanka");
+        return Assertion.ASSERTION;
     }
 
 }

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?view=diff&rev=440647&r1=440646&r2=440647
==============================================================================
--- 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 Wed Sep  6 00:47:29 2006
@@ -84,10 +84,10 @@
     }
     
     public PolicyComponent normalize() {
-        throw new UnsupportedOperationException();
+        return this;
     }
     
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
-        throw new UnsupportedOperationException();
+        throw new UnsupportedOperationException("not yet implemented");
     }
 }



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