Author: ruwan
Date: Tue Jul  1 21:33:15 2008
New Revision: 673274

URL: http://svn.apache.org/viewvc?rev=673274&view=rev
Log:
Fixing the issue SYNAPSE-354, now when you engage security to the outbound 
message addressing is not enagegd unless you specifically engage addressing as 
well.

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/AnonymousServiceFactory.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/AnonymousServiceFactory.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/AnonymousServiceFactory.java?rev=673274&r1=673273&r2=673274&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/AnonymousServiceFactory.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/AnonymousServiceFactory.java
 Tue Jul  1 21:33:15 2008
@@ -43,6 +43,7 @@
 
     private static final String NONE            = "__NONE__";
     private static final String ADDR_ONLY       = "__ADDR_ONLY__";
+    private static final String SEC_ONLY        = "__SEC_ONLY__";
     private static final String RM_AND_ADDR     = "__RM_AND_ADDR__";
     private static final String SEC_AND_ADDR    = "__SEC_AND_ADDR__";
     private static final String RM_SEC_AND_ADDR = "__RM_SEC_AND_ADDR__";
@@ -66,19 +67,38 @@
                                                   AxisConfiguration axisCfg, 
boolean wsAddrOn,
                                                   boolean wsRMOn, boolean 
wsSecOn) {
 
+        // if non of addressing, security and rm is engaged then checkbit is 0
+        int checkbit = 0;
+        // if addressing is on increase the checkbit by 1
+        if (wsAddrOn) { checkbit += 1; }
+        // if security is on increase the checkbit by 2
+        if (wsSecOn) { checkbit += 2; }
+        // if reliable messaging is on increase the checkbit by 4
+        if (wsRMOn) { checkbit += 4; }
+
         String servicekey;
-        if (!wsAddrOn) {
-            servicekey = NONE;
-        } else {
-            if (!wsSecOn && !wsRMOn) {
+        switch (checkbit) {
+            case 0 :
+                servicekey = NONE;
+                break;
+            case 1 :
                 servicekey = ADDR_ONLY;
-            } else if (wsRMOn && !wsSecOn) {
-                servicekey = RM_AND_ADDR;
-            } else if (wsSecOn && !wsRMOn) {
+                break;
+            case 2 :
+                servicekey = SEC_ONLY;
+                break;
+            case 3 :
                 servicekey = SEC_AND_ADDR;
-            } else {
+                break;
+            case 4 & 5 :
+                servicekey = RM_AND_ADDR;
+                break;
+            case 6 & 7 :
                 servicekey = RM_SEC_AND_ADDR;
-            }
+                break;
+            default :
+                servicekey = NONE;
+                break;
         }
 
         try {
@@ -102,12 +122,13 @@
                             service.engageModule(axisCfg.getModule(
                                 SynapseConstants.MERCURY_MODULE_NAME), 
axisCfg);
                         }
-                        if (wsSecOn) {
-                            service.engageModule(axisCfg.getModule(
+                    }
+                    // if WS-A is off, WS-RM should be too
+
+                    if (wsSecOn) {
+                        service.engageModule(axisCfg.getModule(
                                 SynapseConstants.RAMPART_MODULE_NAME), 
axisCfg);
-                        }
                     }
-                    // if WS-A is off, WS-Sec and WS-RM should be too
                 }
             }
             return service;

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java?rev=673274&r1=673273&r2=673274&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
 Tue Jul  1 21:33:15 2008
@@ -86,7 +86,7 @@
             outboundWsSecPolicyKey = endpoint.getOutboundWsSecPolicyKey();
             wsRMEnabled            = endpoint.isReliableMessagingOn();
             wsRMPolicyKey          = endpoint.getWsRMPolicyKey();
-            wsAddressingEnabled    = endpoint.isAddressingOn() || 
wsSecurityEnabled || wsRMEnabled;
+            wsAddressingEnabled    = endpoint.isAddressingOn() || wsRMEnabled;
             wsAddressingVersion    = endpoint.getAddressingVersion();
         }
 


Reply via email to