Author: nandana
Date: Thu Jun 12 05:56:56 2008
New Revision: 667065

URL: http://svn.apache.org/viewvc?rev=667065&view=rev
Log:
RAMPART-175 Allow ability to specify message level policies using client's 
options

Modified:
    
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java

Modified: 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java?rev=667065&r1=667064&r2=667065&view=diff
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
 Thu Jun 12 05:56:56 2008
@@ -63,6 +63,10 @@
      */
     public final static String KEY_RAMPART_POLICY = "rampartPolicy";
     
+    public final static String KEY_RAMPART_IN_POLICY = "rampartInPolicy";
+        
+    public final static String KEY_RAMPART_OUT_POLICY = "rampartOutPolicy";
+    
     /**
      * Key to hold the populated RampartPolicyData object
      */
@@ -191,6 +195,35 @@
                 this.servicePolicy = 
(Policy)msgCtx.getProperty(KEY_RAMPART_POLICY);
             }
             
+            
+            // Checking which flow we are in
+            int flow = msgCtx.getFLOW();
+            
+            // If we are IN flow or IN_FAULT flow and the 
KEY_RAMPART_IN_POLICY is set , we set the
+            // merge that policy to the KEY_RAMPART_POLICY if it is present. 
Else we set 
+            // KEY_RAMPART_IN_POLICY as the service policy
+            if ( (flow == MessageContext.IN_FLOW || flow == 
MessageContext.IN_FAULT_FLOW ) 
+                    &&  msgCtx.getProperty(KEY_RAMPART_IN_POLICY) != null) {
+                if ( this.servicePolicy == null ) {
+                    this.servicePolicy = 
(Policy)msgCtx.getProperty(KEY_RAMPART_IN_POLICY);
+                } else {
+                    this.servicePolicy = 
this.servicePolicy.merge((Policy)msgCtx
+                            .getProperty(KEY_RAMPART_IN_POLICY));
+                }
+                
+            // If we are OUT flow or OUT_FAULT flow and the 
KEY_RAMPART_OUT_POLICY is set , we set 
+            // the merge that policy to the KEY_RAMPART_POLICY if it is 
present. Else we set 
+            // KEY_RAMPART_OUT_POLICY as the service policy    
+            } else if ( (flow == MessageContext.OUT_FLOW || flow == 
MessageContext.OUT_FAULT_FLOW ) 
+                    &&  msgCtx.getProperty(KEY_RAMPART_OUT_POLICY) != null) {
+                if (this.servicePolicy == null) {
+                    this.servicePolicy = 
(Policy)msgCtx.getProperty(KEY_RAMPART_OUT_POLICY);
+                } else {
+                    this.servicePolicy = 
this.servicePolicy.merge((Policy)msgCtx
+                            .getProperty(KEY_RAMPART_OUT_POLICY));
+                }
+            }
+            
             /*
              * Init policy:
              * When creating the RampartMessageData instance we 
@@ -238,6 +271,7 @@
                         
rc.setSigCryptoConfig(rampartConfig.getSigCryptoConfig());
                         
rc.setDecCryptoConfig(rampartConfig.getDecCryptoConfig());
                         rc.setUser(rampartConfig.getUser());
+                        rc.setUserCertAlias(rc.getUserCertAlias());
                         
rc.setEncryptionUser(rampartConfig.getEncryptionUser());
                         rc.setPwCbClass(rampartConfig.getPwCbClass());
                         rc.setSSLConfig(rampartConfig.getSSLConfig());


Reply via email to