[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