[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rampart-dev
Subject:    svn commit: r512816 - in /webservices/rampart/trunk/java/modules:
From:       ruchithf () apache ! org
Date:       2007-02-28 15:45:35
Message-ID: 20070228154535.68DE11A981A () eris ! apache ! org
[Download RAW message or body]

Author: ruchithf
Date: Wed Feb 28 07:45:34 2007
New Revision: 512816

URL: http://svn.apache.org/viewvc?view=rev&rev=512816
Log:
Enable picking up message level policies at the client side

Modified:
    webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
  webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java
  webservices/rampart/trunk/java/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.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?view=diff&rev=512816&r1=512815&r2=512816
 ==============================================================================
--- 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 \
Wed Feb 28 07:45:34 2007 @@ -160,7 +160,24 @@
                 this.secConvVersion = \
TrustUtil.getWSTVersion((String)msgCtx.getProperty(KEY_WSSC_VERSION));  }
             
+            Parameter clientSideParam = \
msgCtx.getAxisService().getParameter(PARAM_CLIENT_SIDE); +            \
if(clientSideParam != null) { +                this.isInitiator = true;
+            } else {
+                this.isInitiator = !msgCtx.isServerSide();
+                if(this.isInitiator) {
+                    clientSideParam = new Parameter();
+                    clientSideParam.setName(PARAM_CLIENT_SIDE);
+                    clientSideParam.setLocked(true);
+                    msgCtx.getAxisService().addParameter(clientSideParam);
+                }
+            }
+            
             //If the policy is already available in the service, then use it
+            String msgPolicyKey = getMessagePolicyKey(msgCtx);
+            if(msgCtx.getProperty(msgPolicyKey) != null) {
+                this.servicePolicy = (Policy)msgCtx.getProperty(msgPolicyKey);
+            } 
             
             String operationPolicyKey = getOperationPolicyKey(msgCtx);
             if(msgCtx.getProperty(operationPolicyKey) != null) {
@@ -176,18 +193,6 @@
                 this.servicePolicy = (Policy)msgCtx.getProperty(KEY_RAMPART_POLICY);
             }
             
-            Parameter clientSideParam = \
                msgCtx.getAxisService().getParameter(PARAM_CLIENT_SIDE);
-            if(clientSideParam != null) {
-                this.isInitiator = true;
-            } else {
-                this.isInitiator = !msgCtx.isServerSide();
-                if(this.isInitiator) {
-                    clientSideParam = new Parameter();
-                    clientSideParam.setName(PARAM_CLIENT_SIDE);
-                    clientSideParam.setLocked(true);
-                    msgCtx.getAxisService().addParameter(clientSideParam);
-                }
-            }
             
             /*
              * Init policy:
@@ -195,21 +200,21 @@
              * extract the service policy is set in the msgCtx.
              * If it is missing then try to obtain from the configuration files.
              */
+            
             if(this.servicePolicy == null) {
-                if(!this.isInitiator) {
-                    this.servicePolicy = msgCtx.getEffectivePolicy();
-                } else {
-                    Parameter param = \
                msgCtx.getParameter(RampartMessageData.KEY_RAMPART_POLICY);
-                    if(param != null) {
-                        OMElement policyElem = \
                param.getParameterElement().getFirstElement();
-                        this.servicePolicy = PolicyEngine.getPolicy(policyElem);
-                    }
-
-                    //Set the policy in the config ctx
-                    msgCtx.getConfigurationContext().setProperty(
-                            RampartMessageData.getOperationPolicyKey(msgCtx), \
this.servicePolicy); +                this.servicePolicy = \
msgCtx.getEffectivePolicy(); +            }
+            
+            if(this.servicePolicy == null) {
+                Parameter param = \
msgCtx.getParameter(RampartMessageData.KEY_RAMPART_POLICY); +                if(param \
!= null) { +                    OMElement policyElem = \
param.getParameterElement().getFirstElement(); +                    \
this.servicePolicy = PolicyEngine.getPolicy(policyElem);  }
-                
+
+                //Set the policy in the config ctx
+                msgCtx.getConfigurationContext().setProperty(
+                        RampartMessageData.getServicePolicyKey(msgCtx), \
this.servicePolicy);  }
             
             if(this.isInitiator && this.servicePolicy != null) {
@@ -581,6 +586,16 @@
         this.servicePolicy = servicePolicy;
     }
     
+    
+    public static String getMessagePolicyKey(MessageContext msgCtx) {
+        if(msgCtx.getAxisOperation() != null) {
+            return createPolicyKey(msgCtx.getAxisService().getName(), 
+                                msgCtx.getAxisOperation().getName(),
+                                msgCtx.getAxisMessage().getName());
+        }
+        return null;
+    }
+    
     /**
      * @param msgCtx
      * @return The key to store/pickup policy of an operation
@@ -588,21 +603,27 @@
     public static String getOperationPolicyKey(MessageContext msgCtx) {
         if(msgCtx.getAxisOperation() != null) {
             return createPolicyKey(msgCtx.getAxisService().getName(), 
-                                msgCtx.getAxisOperation().getName());
+                                msgCtx.getAxisOperation().getName(), null);
             
         }
         return null;
     }
 
     public static String getServicePolicyKey(MessageContext msgCtx) {
-        return  createPolicyKey(msgCtx.getAxisService().getName(), null);
+        return  createPolicyKey(msgCtx.getAxisService().getName(), null, null);
     }
     
-    public static String createPolicyKey(String service, QName operation) {
+    public static String createPolicyKey(String service, QName operation, String \
msg) {  if(operation != null) {
-            return RampartMessageData.KEY_RAMPART_POLICY + service
+            if(msg != null) {
+                return RampartMessageData.KEY_RAMPART_POLICY + service
+                + "{" + operation.getNamespaceURI() + "}"
+                + operation.getLocalPart() + ":" + msg;
+            } else {
+                return RampartMessageData.KEY_RAMPART_POLICY + service
                     + "{" + operation.getNamespaceURI() + "}"
                     + operation.getLocalPart();
+            }
         } else {
             return RampartMessageData.KEY_RAMPART_POLICY + service;
         }

Modified: webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java
                
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-integ \
ration/src/test/java/org/apache/rampart/RampartTest.java?view=diff&rev=512816&r1=512815&r2=512816
 ==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java \
                (original)
+++ webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java \
Wed Feb 28 07:45:34 2007 @@ -89,7 +89,7 @@
                 options.setProperty(RampartMessageData.KEY_RAMPART_POLICY, 
                         loadPolicy("/rampart/policy/" + i + ".xml"));
                 serviceClient.setOptions(options);
-
+                
                 //Blocking invocation
                 serviceClient.sendReceive(getEchoElement());
             }

Modified: webservices/rampart/trunk/java/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.java
                
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-tests \
/src/test/java/org/apache/rampart/MessageBuilderTestBase.java?view=diff&rev=512816&r1=512815&r2=512816
 ==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.java \
                (original)
+++ webservices/rampart/trunk/java/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.java \
Wed Feb 28 07:45:34 2007 @@ -26,9 +26,11 @@
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.ServiceContext;
 import org.apache.axis2.context.ServiceGroupContext;
+import org.apache.axis2.description.AxisMessage;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.OutInAxisOperation;
 import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.neethi.Policy;
 import org.apache.neethi.PolicyEngine;
 import org.apache.ws.security.WSConstants;
@@ -68,7 +70,12 @@
                 new ServiceGroupContext(null, null));
         ctx.setServiceContext(serviceContext);
         ctx.setAxisService(axisService);
-        ctx.setAxisOperation(new OutInAxisOperation(new QName("http://rampart.org", \
"test"))); +        OutInAxisOperation outInAxisOperation = new \
OutInAxisOperation(new QName("http://rampart.org", "test")); +        AxisMessage msg \
= new AxisMessage(); +        \
outInAxisOperation.addMessage(msg,WSDLConstants.MESSAGE_LABEL_OUT_VALUE); +        \
outInAxisOperation.addMessage(msg,WSDLConstants.MESSAGE_LABEL_IN_VALUE); +        \
ctx.setAxisOperation(outInAxisOperation); +        ctx.setAxisMessage(msg);
         Options options = new Options();
         options.setAction("urn:testOperation");
         ctx.setOptions(options);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic