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
