You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by he...@apache.org on 2006/03/08 05:01:33 UTC
svn commit: r384112 - in
/webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security:
SecurityModule.java util/HandlerParameterDecoder.java
Author: hemapani
Date: Tue Mar 7 20:01:31 2006
New Revision: 384112
URL: http://svn.apache.org/viewcvs?rev=384112&view=rev
Log:
add support to load the configuration from Module parameters
Modified:
webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/SecurityModule.java
webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/util/HandlerParameterDecoder.java
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/SecurityModule.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/SecurityModule.java?rev=384112&r1=384111&r2=384112&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/SecurityModule.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/SecurityModule.java Tue Mar 7 20:01:31 2006
@@ -34,12 +34,17 @@
import org.apache.ws.security.policy.parser.WSSPolicyProcessor;
public class SecurityModule implements Module {
-
+ private AxisModule module;
+
+
+ public void init(ConfigurationContext configContext, AxisModule module) throws AxisFault {
+ this.module = module;
+ }
+
+
public void engageNotify(AxisDescription axisDescription) throws AxisFault {
Policy policy = axisDescription.getPolicyInclude().getEffectivePolicy();
if(axisDescription instanceof AxisOperation && policy != null) {
-// PolicyWriter writer = PolicyFactory.getPolicyWriter(PolicyFactory.StAX_POLICY_WRITER);
-// writer.writePolicy(policy, System.out);
try {
WSSPolicyProcessor wssPolicyProcessor = new WSSPolicyProcessor();
wssPolicyProcessor.setup();
@@ -50,26 +55,7 @@
InflowConfiguration policyInflowConfig = config.getInflowConfiguration();
OutflowConfiguration policyOutflowConfig = config.getOutflowConfiguration();
- Parameter inflowSecParam = axisDescription.getParameter(WSSHandlerConstants.INFLOW_SECURITY);
- Parameter outflowSecParam = axisDescription.getParameter(WSSHandlerConstants.OUTFLOW_SECURITY);
-
- InflowConfiguration staticInflowConfig = HandlerParameterDecoder.getInflowConfiguration(inflowSecParam);
- OutflowConfiguration staticOutflowConfig = HandlerParameterDecoder.getOutflowConfiguration(outflowSecParam);
-
-// if(staticInflowConfig == null || staticOutflowConfig == null) {
-// throw new Exception("Static configuration not available!!!");
-// }
- if(staticOutflowConfig != null) {
- OutflowConfiguration mergedOutflowConfig = this
- .mergeStaticAndPolicyOutflowConfiguration(
- staticOutflowConfig, policyOutflowConfig);
- axisDescription.addParameter(mergedOutflowConfig.getProperty());
- }
-
- if(staticInflowConfig != null) {
- InflowConfiguration mergedInflowConfig = this.mergeStaticAndPolicyInflowConfiguration(staticInflowConfig, policyInflowConfig);
- axisDescription.addParameter(mergedInflowConfig.getProperty());
- }
+ calcuateCurrentConfiguration(policyInflowConfig,policyOutflowConfig,axisDescription);
} catch (Exception e) {
throw new AxisFault(e.getMessage(),e);
}
@@ -80,26 +66,69 @@
//Do nothing
}
- public void init(ConfigurationContext configContext, AxisModule module) throws AxisFault {
- //DO nothing
- }
+
- private OutflowConfiguration mergeStaticAndPolicyOutflowConfiguration(
- OutflowConfiguration staticConfig, OutflowConfiguration policyConfig) {
- policyConfig.setPasswordCallbackClass(staticConfig.getPasswordCallbackClass());
- policyConfig.setSignaturePropFile(staticConfig.getSignaturePropFile());
- policyConfig.setEncryptionPropFile(staticConfig.getEncryptionPropFile());
- policyConfig.setEmbeddedKeyCallbackClass(staticConfig.getEmbeddedKeyCallbackClass());
- policyConfig.setUser(staticConfig.getUser());
- policyConfig.setEncryptionUser(staticConfig.getEncryptionUser());
- return policyConfig;
+ private void calcuateCurrentConfiguration(InflowConfiguration policyInflowConfig,
+ OutflowConfiguration policyOutflowConfig,AxisDescription axisDescription) throws AxisFault{
+ //merge inflow configuration
+ Parameter inflowModuleParam = axisDescription.getParameter(WSSHandlerConstants.INFLOW_SECURITY);
+ InflowConfiguration moduleInflowConfig = HandlerParameterDecoder.getInflowConfiguration(inflowModuleParam);
+
+ Parameter inflowSecParam = axisDescription.getParameter(WSSHandlerConstants.INFLOW_SECURITY);
+ InflowConfiguration staticInflowConfig = HandlerParameterDecoder.getInflowConfiguration(inflowSecParam);
+
+ InflowConfiguration mergedInConf = mergeInflowConfiguration(staticInflowConfig,moduleInflowConfig);
+ InflowConfiguration finalInConf = mergeInflowConfiguration(policyInflowConfig,mergedInConf);
+ axisDescription.addParameter(finalInConf.getProperty());
+
+
+
+ //merge outflow configuration
+ Parameter outfloModuleParam = axisDescription.getParameter(WSSHandlerConstants.OUTFLOW_SECURITY);
+ OutflowConfiguration moduleOutflowConfig = HandlerParameterDecoder.getOutflowConfiguration(outfloModuleParam);
+ Parameter outflowSecParam = axisDescription.getParameter(WSSHandlerConstants.OUTFLOW_SECURITY);
+ OutflowConfiguration staticOutflowConfig = HandlerParameterDecoder.getOutflowConfiguration(outflowSecParam);
+
+ OutflowConfiguration mergedOutFlowConf = mergeOutflowConfiguration(staticOutflowConfig,moduleOutflowConfig);
+ OutflowConfiguration finalOutFlowConf = mergeOutflowConfiguration(policyOutflowConfig,mergedOutFlowConf);
+ axisDescription.addParameter(finalOutFlowConf.getProperty());
+ }
+
+
+ //overide secondry configuration with primry configuration
+ private OutflowConfiguration mergeOutflowConfiguration(
+ OutflowConfiguration primaryConfig,OutflowConfiguration secondryConf) {
+ if(secondryConf == null && primaryConfig != null){
+ return primaryConfig;
+ }else if(primaryConfig == null && secondryConf != null){
+ return secondryConf;
+ }else if(primaryConfig == null && secondryConf == null){
+ return null;
+ }
+
+ secondryConf.setPasswordCallbackClass(primaryConfig.getPasswordCallbackClass());
+ secondryConf.setSignaturePropFile(primaryConfig.getSignaturePropFile());
+ secondryConf.setEncryptionPropFile(primaryConfig.getEncryptionPropFile());
+ secondryConf.setEmbeddedKeyCallbackClass(primaryConfig.getEmbeddedKeyCallbackClass());
+ secondryConf.setUser(primaryConfig.getUser());
+ secondryConf.setEncryptionUser(primaryConfig.getEncryptionUser());
+ return secondryConf;
}
- private InflowConfiguration mergeStaticAndPolicyInflowConfiguration(
- InflowConfiguration staticConfig, InflowConfiguration policyConfig) {
- policyConfig.setPasswordCallbackClass(staticConfig.getPasswordCallbackClass());
- policyConfig.setDecryptionPropFile(staticConfig.getDecryptionPropFile());
- policyConfig.setSignaturePropFile(staticConfig.getSignaturePropFile());
- return policyConfig;
+ //overide secondry configuration with primry configuration
+ private InflowConfiguration mergeInflowConfiguration(
+ InflowConfiguration primaryConfig,InflowConfiguration secondryConf) {
+ if(secondryConf == null && primaryConfig != null){
+ return primaryConfig;
+ }else if(primaryConfig == null && secondryConf != null){
+ return secondryConf;
+ }else if(primaryConfig == null && secondryConf == null){
+ return null;
+ }
+
+ secondryConf.setPasswordCallbackClass(primaryConfig.getPasswordCallbackClass());
+ secondryConf.setDecryptionPropFile(primaryConfig.getDecryptionPropFile());
+ secondryConf.setSignaturePropFile(primaryConfig.getSignaturePropFile());
+ return secondryConf;
}
}
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/util/HandlerParameterDecoder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/util/HandlerParameterDecoder.java?rev=384112&r1=384111&r2=384112&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/util/HandlerParameterDecoder.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/util/HandlerParameterDecoder.java Tue Mar 7 20:01:31 2006
@@ -15,6 +15,7 @@
*/
package org.apache.axis2.security.util;
+import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.security.handler.WSSHandlerConstants;
@@ -138,14 +139,14 @@
}
}
- public static OutflowConfiguration getOutflowConfiguration(Parameter outflowConfigParam) throws Exception {
+ public static OutflowConfiguration getOutflowConfiguration(Parameter outflowConfigParam) throws AxisFault {
if (outflowConfigParam != null) {
OMElement outflowParamElem = outflowConfigParam.getParameterElement();
OMElement actionElem = outflowParamElem
.getFirstChildWithName(new QName(WSSHandlerConstants.ACTION));
if (actionElem == null) {
- throw new Exception(
+ throw new AxisFault(
"Inflow configurtion must contain an 'action' "
+ "elementas the child of 'InflowSecurity' element");
}
@@ -176,7 +177,7 @@
return null;
}
- public static InflowConfiguration getInflowConfiguration(Parameter inflowConfigParam) throws Exception {
+ public static InflowConfiguration getInflowConfiguration(Parameter inflowConfigParam) throws AxisFault {
if (inflowConfigParam != null) {
OMElement inFlowParamElem = inflowConfigParam.getParameterElement();
@@ -184,7 +185,7 @@
OMElement actionElem = inFlowParamElem
.getFirstChildWithName(new QName(WSSHandlerConstants.ACTION));
if (actionElem == null) {
- throw new Exception(
+ throw new AxisFault(
"Inflow configurtion must contain an 'action' "
+ "elementas the child of 'InflowSecurity' element");
}