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());