Author: keith
Date: Thu Jul 31 10:02:21 2008
New Revision: 20275
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=20275

Log:
Fixing Mashup-1041



Modified:
   
branches/mashup/java/1.5/java/modules/patches/wsas/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java

Modified: 
branches/mashup/java/1.5/java/modules/patches/wsas/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java
URL: 
http://wso2.org/svn/browse/wso2/branches/mashup/java/1.5/java/modules/patches/wsas/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java?rev=20275&r1=20274&r2=20275&view=diff
==============================================================================
--- 
branches/mashup/java/1.5/java/modules/patches/wsas/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java
 (original)
+++ 
branches/mashup/java/1.5/java/modules/patches/wsas/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java
 Thu Jul 31 10:02:21 2008
@@ -24,6 +24,7 @@
 import org.apache.axis2.Constants;
 import org.apache.axis2.description.AxisModule;
 import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Parameter;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.commons.logging.Log;
@@ -41,6 +42,7 @@
 import org.jaxen.XPath;
 import org.wso2.utils.AbstractAdmin;
 import org.wso2.wsas.ServerConstants;
+import org.wso2.wsas.util.ParameterUtil;
 import org.wso2.wsas.admin.service.util.SecurityAssignment;
 import org.wso2.wsas.admin.service.util.SelectableString;
 import org.wso2.wsas.admin.service.util.UtKeystoreSecurityAssignment;
@@ -52,7 +54,9 @@
 import org.wso2.wsas.persistence.dataobject.ServiceIdentifierDO;
 import org.wso2.wsas.persistence.dataobject.ServiceUserDO;
 import org.wso2.wsas.persistence.dataobject.ServiceUserRoleDO;
+import org.wso2.wsas.persistence.dataobject.ServiceParameterDO;
 import org.wso2.wsas.persistence.exception.ServiceNotFoundException;
+import org.wso2.wsas.persistence.exception.DuplicateEntityException;
 import org.wso2.wsas.security.ServerCrypto;
 import org.wso2.wsas.security.WSS4JUtil;
 import org.wso2.wsas.security.util.RampartConfigUtil;
@@ -139,12 +143,13 @@
 
         // Add the policy to the axis service
         String scenarioPolicyXml = scenarioDir + scenarioId + "-policy.xml";
+        AxisService axisService;
         try {
             Policy policy = loadPolicy(scenarioPolicyXml);
             if (rampartConfig != null) {
                 policy.addAssertion(rampartConfig);
             }
-            AxisService axisService = getAxisConfig().getService(serviceName);
+            axisService = getAxisConfig().getService(serviceName);
 //            axisService.getPolicySubject().attachPolicy(policy);
             
             // When there is a transport binding sec policy assertion,
@@ -208,9 +213,11 @@
                 serviceAdmin.setHttpBindingPolicy(serviceName,
                                                   
ServiceIdentifierDO.EMPTY_SERVICE_VERSION,
                                                   baos.toString());
-                axisService.addParameter(Constants.Configuration.DISABLE_REST, 
Boolean.FALSE);
+                axisService.addParameter(ParameterUtil.createParameter(
+                                       Constants.Configuration.DISABLE_REST, 
"false"));
             } else {
-                axisService.addParameter(Constants.Configuration.DISABLE_REST, 
Boolean.TRUE);
+                axisService.addParameter(ParameterUtil.createParameter(
+                                       Constants.Configuration.DISABLE_REST, 
"true"));
             }
             serviceAdmin.setSoap11BindingPolicy(serviceName,
                                        
ServiceIdentifierDO.EMPTY_SERVICE_VERSION, baos.toString());
@@ -225,6 +232,26 @@
         ServiceDO service = pm.getService(serviceName, 
ServiceIdentifierDO.EMPTY_SERVICE_VERSION);
         SecurityScenarioDO securityScenario = 
pm.getSecurityScenario(scenarioId);
         if (service != null && securityScenario != null) {
+            Parameter parameter = 
axisService.getParameter(Constants.Configuration.DISABLE_REST);
+            if (parameter != null && parameter.getParameterElement() != null) {
+                ServiceParameterDO serviceParameterDO =
+                    service.getParameter(Constants.Configuration.DISABLE_REST);
+                if (serviceParameterDO == null) {
+                    serviceParameterDO = new ServiceParameterDO();
+                    
serviceParameterDO.setName(Constants.Configuration.DISABLE_REST);
+                    
serviceParameterDO.setValue(parameter.getParameterElement().toString());
+                    serviceParameterDO.setService(service);
+                    service.addParameter(serviceParameterDO);
+                    try {
+                        pm.addEntity(serviceParameterDO);
+                    } catch (DuplicateEntityException e) {
+                        log.error("Service Parameter already exists", e);
+                    }
+                } else {
+                    
serviceParameterDO.setValue(parameter.getParameterElement().toString());
+                    pm.updateEntity(serviceParameterDO);
+                }
+            }
             securityScenario.addService(service);
             pm.updateEntity(securityScenario);
             pm.updateEntity(service);

_______________________________________________
Mashup-dev mailing list
[email protected]
http://mailman.wso2.org/cgi-bin/mailman/listinfo/mashup-dev

Reply via email to