Author: sanka Date: Mon Jun 9 06:01:11 2008 New Revision: 18228 URL: http://wso2.org/svn/browse/wso2?view=rev&revision=18228
Log: Added: branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/util/BindingUtil.java Modified: branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ServiceAdmin.java branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/PersistenceManager.java branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingDAO.java branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingDO.java branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingPolicyDO.java branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServicePolicyDO.java Modified: branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java URL: http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java?rev=18228&r1=18227&r2=18228&view=diff ============================================================================== --- branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java (original) +++ branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java Mon Jun 9 06:01:11 2008 @@ -23,7 +23,6 @@ import org.apache.axis2.AxisFault; import org.apache.axis2.description.AxisModule; import org.apache.axis2.description.AxisService; -import org.apache.axis2.description.PolicyInclude; import org.apache.axis2.engine.AxisConfiguration; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.commons.logging.Log; @@ -145,7 +144,7 @@ policy.addAssertion(rampartConfig); } AxisService axisService = getAxisConfig().getService(serviceName); - axisService.getPolicySubject().attachPolicy(policy); +// axisService.getPolicySubject().attachPolicy(policy); // When there is a transport binding sec policy assertion, // the service should be exposed only via HTTPS @@ -201,9 +200,14 @@ policy.serialize(xmlStreamWriter); xmlStreamWriter.flush(); removeAllSecurityScenarioPolicies(serviceAdmin, serviceName); - serviceAdmin.setPolicy(serviceName, - ServiceIdentifierDO.EMPTY_SERVICE_VERSION, - baos.toString()); +// serviceAdmin.setPolicy(serviceName, +// ServiceIdentifierDO.EMPTY_SERVICE_VERSION, +// baos.toString()); + serviceAdmin.setSoap11BindingPolicy(serviceName, + ServiceIdentifierDO.EMPTY_SERVICE_VERSION, baos.toString()); + serviceAdmin.setSoap12BindingPolicy(serviceName, + ServiceIdentifierDO.EMPTY_SERVICE_VERSION, baos.toString()); + } catch (Exception e) { throw new AxisFault("Could not load security policy", e); } @@ -279,11 +283,18 @@ throw new AxisFault("The policy ID in the policy file " + policyFile.getAbsolutePath() + " is null"); } - if (serviceAdmin.removePolicy(serviceName, - ServiceIdentifierDO.EMPTY_SERVICE_VERSION, - idAtt.getAttributeValue())) { - break; + + if (serviceAdmin.removeSoap11BindingPolicy(serviceName, ServiceIdentifierDO.EMPTY_SERVICE_VERSION, idAtt.getAttributeValue()) && serviceAdmin.removeSoap12BindingPolicy(serviceName, ServiceIdentifierDO.EMPTY_SERVICE_VERSION, idAtt.getAttributeValue())) { + break; } +// if (serviceAdmin.removePolicy(serviceName, +// ServiceIdentifierDO.EMPTY_SERVICE_VERSION, +// idAtt.getAttributeValue())) { +// break; +// } + + + } catch (Exception e) { throw AxisFault.makeFault(e); } Modified: branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ServiceAdmin.java URL: http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ServiceAdmin.java?rev=18228&r1=18227&r2=18228&view=diff ============================================================================== --- branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ServiceAdmin.java (original) +++ branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ServiceAdmin.java Mon Jun 9 06:01:11 2008 @@ -105,9 +105,9 @@ import org.wso2.wsas.persistence.dataobject.TransportDO; import org.wso2.wsas.persistence.exception.DuplicateEntityException; import org.wso2.wsas.persistence.exception.ServiceNotFoundException; -import org.wso2.wsas.persistence.exception.ServicePolicyAlreadyExistsException; import org.wso2.wsas.persistence.exception.ServicePolicyNotFoundException; import org.wso2.wsas.transport.util.TransportSummary; +import org.wso2.wsas.util.BindingUtil; import org.wso2.wsas.util.ParameterUtil; import org.wso2.wsas.util.PolicyUtil; @@ -1032,7 +1032,7 @@ } List axisBindings = new ArrayList(); - + for (Iterator iterator = axisService.getEndpoints().values().iterator(); iterator .hasNext();) { AxisEndpoint axisEndpoint = (AxisEndpoint) iterator.next(); @@ -1083,13 +1083,13 @@ if (axisService == null) { throw new AxisFault("Invalid service name " + serviceId); } - + PolicySubject servicePolicySubject = axisService.getPolicySubject(); if (servicePolicySubject.getAttachedPolicyComponent(policyId) != null) { servicePolicySubject.detachPolicyComponent(policyId); isPolicyRemoved = true; } - + ServiceDO serviceDO = pm.getService(serviceId, version); List policiesToBeRemoved = new ArrayList(); for (Iterator policyIter = serviceDO.getPolicies().iterator(); policyIter @@ -1107,13 +1107,79 @@ policies.remove(iterator.next()); isPolicyRemoved = true; } - + if (isPolicyRemoved) { - + } pm.updateEntity(serviceDO); return isPolicyRemoved; } + + public boolean removeSoap11BindingPolicy(String serviceId, String version, + String policyId) throws AxisFault { + return removeBindingPolicy(serviceId, version, policyId, + BindingDO.SOAP11_BINDING); + } + + public boolean removeSoap12BindingPolicy(String serviceId, String version, + String policyId) throws AxisFault { + return removeBindingPolicy(serviceId, version, policyId, + BindingDO.SOAP12_BINDING); + } + + public boolean removeHttpBindingPolicy(String serviceId, String version, + String policyId) throws AxisFault { + return removeBindingPolicy(serviceId, version, policyId, + BindingDO.HTTP_BINDING); + } + + private boolean removeBindingPolicy(String serviceId, String version, + String policyId, int type) throws AxisFault { + AxisService axisService = getAxisConfig().getService(serviceId); + if (axisService == null) { + throw new AxisFault("Invalid service name " + serviceId); + } + + for (Iterator iterator = axisService.getEndpoints().values().iterator(); iterator + .hasNext();) { + AxisEndpoint endpoint = (AxisEndpoint) iterator.next(); + AxisBinding binding = endpoint.getBinding(); + + if (BindingDO.SOAP11_BINDING == type + && BindingUtil.isSoap11Binding(binding)) { + return removePolicy(serviceId, version, endpoint, policyId); + } else if (BindingDO.SOAP12_BINDING == type + && BindingUtil.isSoap12Binding(binding)) { + return removePolicy(serviceId, version, endpoint, policyId); + } else if (BindingDO.HTTP_BINDING == type + && BindingUtil.isHttpBinding(binding)) { + return removePolicy(serviceId, version, endpoint, policyId); + } + } + return false; + } + + private boolean removePolicy(String serviceId, String version, + AxisEndpoint endpoint, String policyId) { + ServiceDO serviceDO = pm.getService(serviceId, version); + EndpointDO endpointDO = serviceDO.getEndpoint(endpoint.getName()); + AxisBinding binding = endpoint.getBinding(); + BindingDO bindingDO = endpointDO.getBinding(); + if (binding.getPolicySubject().getAttachedPolicyComponent(policyId) != null) { + for (Iterator iterator = bindingDO.getPolicies().iterator(); iterator + .hasNext();) { + BindingPolicyDO bindingPolicyDO = (BindingPolicyDO) iterator + .next(); + if (bindingPolicyDO.getUuid().equals(policyId)) { + bindingDO.getPolicies().remove(bindingPolicyDO); + pm.updateEntity(bindingDO); + binding.getPolicySubject().detachPolicyComponent(policyId); + return true; + } + } + } + return false; + } public void setPolicy(String serviceId, String version, String policyString) throws AxisFault { @@ -1179,34 +1245,156 @@ servicePolicyDO.setService(pm.getService(serviceId, ServiceIdentifierDO.EMPTY_SERVICE_VERSION)); servicePolicyDO.setPolicy(policyElement.toString()); - - // // - if (servicePolicySubject.getAttachedPolicyComponent(idAttrVal) != null) { - servicePolicySubject.updatePolicy(servicePolicy); - try { pm.updateServicePolicy(servicePolicyDO); + servicePolicySubject.updatePolicy(servicePolicy); } catch (ServicePolicyNotFoundException e) { throw AxisFault.makeFault(e); } - return; + } else if (updatePolicyIfInBindingHierarchy(axisService, serviceId, + version, idAttrVal, policyElement, servicePolicy, pm)) { + // just returning + + } else { + throw AxisFault + .makeFault(new ServicePolicyNotFoundException( + "Can't find Policy with Id=[" + + servicePolicy.getId() + "]")); + // servicePolicySubject.attachPolicy(servicePolicy); + // servicePolicyDO.setType(ServicePolicyDO.PORT_TYPE_POLICY); + // + // try { + // pm.addServicePolicy(servicePolicyDO); + // servicePolicySubject.attachPolicy(servicePolicy); + // } catch (ServicePolicyAlreadyExistsException e) { + // throw AxisFault.makeFault(e); + // } } + } - if (updatePolicyIfInBindingHierarchy(axisService, serviceId, version, idAttrVal, - policyElement, servicePolicy, pm)) { - return; + public void setSoap11BindingPolicy(String serviceId, String version, + String policy) throws AxisFault { + setBindingPolicy(serviceId, version, policy, BindingDO.SOAP11_BINDING); + } + + public void setSoap12BindingPolicy(String serviceId, String version, + String policy) throws AxisFault { + setBindingPolicy(serviceId, version, policy, BindingDO.SOAP12_BINDING); + } + + public void setHttpBindingPolicy(String serviceId, String version, + String policy) throws AxisFault { + setBindingPolicy(serviceId, version, policy, BindingDO.HTTP_BINDING); + } + + private void setBindingPolicy(String serviceId, String version, + String policy, int type) throws AxisFault { + ServiceDO serviceDO = pm.getService(serviceId, version); + ByteArrayInputStream bais = new ByteArrayInputStream(policy.getBytes()); + OMElement policyElement; + try { + policyElement = new StAXOMBuilder(bais).getDocumentElement(); + policyElement.build(); + } catch (Exception e) { + throw new AxisFault( + "Cannot deserialize service policy. The policy may be invalid.", + e); + } + AxisService axisService = getAxisConfig().getService(serviceId); + if (axisService == null) { + throw new AxisFault("Invalid service name " + serviceId); + } + + if (!policyElement.getLocalName().equals( + org.apache.neethi.Constants.ELEM_POLICY)) { + policyElement = policyElement.getFirstElement(); } - servicePolicySubject.attachPolicy(servicePolicy); - servicePolicyDO.setType(ServicePolicyDO.AXIS_SERVICE_POLICY); + OMAttribute attribute = policyElement.getAttribute(new QName( + org.apache.neethi.Constants.URI_WSU_NS, + org.apache.neethi.Constants.ATTR_ID)); + + if (attribute == null) { + throw new AxisFault("ID Attribute not found in Policy element. " + + "Please verify that the policy XML is valid."); + } + String idAttrVal = attribute.getAttributeValue(); + Policy servicePolicy; try { - pm.addServicePolicy(servicePolicyDO); - } catch (ServicePolicyAlreadyExistsException e) { - throw AxisFault.makeFault(e); + servicePolicy = PolicyUtil.getPolicyFromOMElement(policyElement); + + } catch (NullPointerException npe) { + /* + * Since 'policyElement.toString()' is the actual string which is + * used to create the policy object it logged instead of + * 'policyString'. + */ + log.error( + "Error: When constructing Policy object from the string : " + + policyElement.toString(), npe); + throw new AxisFault("Error: Invalid policy", npe); + + } catch (RuntimeException rte) { + log.error( + "Error: When constructing Policy object from the string : " + + policyElement.toString(), rte); + throw new AxisFault("Error: Invalid policy", rte); } + + Map map = new HashMap(); + for (Iterator iterator = axisService.getEndpoints().values() + .iterator(); iterator.hasNext();) { + AxisEndpoint endpoint = (AxisEndpoint) iterator.next(); + AxisBinding binding = endpoint.getBinding(); + if (!map.values().contains(binding)){ + map.put(endpoint.getName(), binding); + } + } + + for (Iterator iterator = map.keySet().iterator(); iterator.hasNext();) { + String endpointName = (String) iterator.next(); + AxisBinding binding = (AxisBinding) map.get(endpointName); + if (BindingDO.SOAP11_BINDING == type + && BindingUtil.isSoap11Binding(binding)) { + setBindingPolicy(serviceDO, endpointName, binding, idAttrVal, + servicePolicy, policyElement.toString()); + break; + } else if (BindingDO.SOAP12_BINDING == type + && BindingUtil.isSoap12Binding(binding)) { + setBindingPolicy(serviceDO, endpointName, binding, idAttrVal, + servicePolicy, policyElement.toString()); + break; + } else if (BindingDO.HTTP_BINDING == type + && BindingUtil.isHttpBinding(binding)) { + setBindingPolicy(serviceDO, endpointName, binding, idAttrVal, + servicePolicy, policyElement.toString()); + break; + } + } + } + + private void setBindingPolicy(ServiceDO serviceDO, String endpoint, AxisBinding binding, String policyId, Policy bindingPolicy, String policyStr) { + EndpointDO endpointDO = serviceDO.getEndpoint(endpoint); + BindingDO bindingDO = endpointDO.getBinding(); + + BindingPolicyDO bindingPolicyDO = new BindingPolicyDO(); + bindingPolicyDO.setBinding(bindingDO); + bindingPolicyDO.setUuid(policyId); + bindingPolicyDO.setPolicy(policyStr); + + if (binding.getPolicySubject().getAttachedPolicyComponent(policyId) != null) { + // update + pm.updateBindingPolicy(bindingPolicyDO); + binding.getPolicySubject().updatePolicy(bindingPolicy); + } else { + // add + pm.addBindingPolicy(binding.getName().getLocalPart(), + bindingPolicyDO); + binding.getPolicySubject().attachPolicy(bindingPolicy); + } } public String[] getServiceUsers(String serviceName) throws AxisFault { @@ -2173,11 +2361,13 @@ return serviceGroupEle; } - private boolean updatePolicyIfInBindingHierarchy(AxisService service, String serviceId, - String version, String policyId, OMElement policyElement, - Policy policy, PersistenceManager pm) { + private boolean updatePolicyIfInBindingHierarchy(AxisService service, + String serviceId, String version, String policyId, + OMElement policyElement, Policy policy, PersistenceManager pm) { + ServiceDO serviceDO = pm.getService(serviceId, version); Map bindingsMap = new HashMap(); + for (Iterator iterator = service.getEndpoints().values().iterator(); iterator .hasNext();) { AxisEndpoint endpoint = (AxisEndpoint) iterator.next(); @@ -2190,11 +2380,11 @@ endpointPolicyDO.setUuid(policyId); endpointPolicyDO.setPolicy(policyElement.toString()); pm.updateEndpointPolicy(endpointPolicyDO); - return true; } bindingsMap.put(endpoint.getBinding(), endpointDO.getBinding()); } + for (Iterator iterator = bindingsMap.keySet().iterator(); iterator .hasNext();) { AxisBinding binding = (AxisBinding) iterator.next(); @@ -2202,8 +2392,6 @@ if (binding.getPolicySubject().getAttachedPolicyComponent(policyId) != null) { // Updating the Policy in the AxisBinding object binding.getPolicySubject().updatePolicy(policy); - - // BindingPolicyDO bindingPolicyDO = new BindingPolicyDO(); bindingPolicyDO.setBinding(bindingDO); bindingPolicyDO.setUuid(policyId); @@ -2214,5 +2402,5 @@ } return false; } - + } Modified: branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/PersistenceManager.java URL: http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/PersistenceManager.java?rev=18228&r1=18227&r2=18228&view=diff ============================================================================== --- branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/PersistenceManager.java (original) +++ branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/PersistenceManager.java Mon Jun 9 06:01:11 2008 @@ -422,6 +422,10 @@ new BindingDAO(hbConfig).updatePolicy(bindingPolicy); } + public void addBindingPolicy(String bindingName, BindingPolicyDO bindingPolicyDO) { + new BindingDAO(hbConfig).addPolicy(bindingName, bindingPolicyDO); + } + public void updateModulePolicy(ModulePolicyDO modulePolicy) throws ModulePolicyNotFoundException { Modified: branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingDAO.java URL: http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingDAO.java?rev=18228&r1=18227&r2=18228&view=diff ============================================================================== --- branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingDAO.java (original) +++ branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingDAO.java Mon Jun 9 06:01:11 2008 @@ -7,9 +7,12 @@ import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.Transaction; +import org.hibernate.criterion.Expression; import org.hibernate.criterion.Restrictions; import org.wso2.wsas.persistence.dataobject.BindingDO; import org.wso2.wsas.persistence.dataobject.BindingPolicyDO; +import org.wso2.wsas.persistence.dataobject.ServiceDO; +import org.wso2.wsas.persistence.dataobject.ServicePolicyDO; import org.wso2.wsas.util.HibernateConfig; public class BindingDAO extends BaseDAO { @@ -34,28 +37,55 @@ throw new RuntimeException(msg, e); } } - + public void updatePolicy(BindingPolicyDO bindingPolicy) { - Session session = hbConfig.currentSession(); - Transaction tx = session.beginTransaction(); - try { - Criteria criteria = session.createCriteria(BindingPolicyDO.class, "policy") - .add(Restrictions.eq("policy.uuid", bindingPolicy.getUuid())); - BindingPolicyDO bindingPolicyDO = - (BindingPolicyDO) criteria.uniqueResult(); - - if (bindingPolicyDO == null) { - session.save(bindingPolicy); - } else { - bindingPolicyDO.setPolicy(bindingPolicy.getPolicy()); - session.update(bindingPolicyDO); - } - tx.commit(); - } catch (Throwable e) { - tx.rollback(); - String msg = "Unable to update binding policy"; - log.error(msg, e); - throw new RuntimeException(msg, e); - } - } + Session session = hbConfig.currentSession(); + Transaction tx = session.beginTransaction(); + try { + Criteria criteria = session.createCriteria(BindingPolicyDO.class, + "policy").add( + Restrictions.eq("policy.uuid", bindingPolicy.getUuid())); + BindingPolicyDO bindingPolicyDO = (BindingPolicyDO) criteria + .uniqueResult(); + + if (bindingPolicyDO == null) { + session.save(bindingPolicy); + } else { + bindingPolicyDO.setPolicy(bindingPolicy.getPolicy()); + session.update(bindingPolicyDO); + } + tx.commit(); + } catch (Throwable e) { + tx.rollback(); + String msg = "Unable to update binding policy"; + log.error(msg, e); + throw new RuntimeException(msg, e); + } + } + + public void addPolicy(String bindingName, + BindingPolicyDO policy) { + Session session = hbConfig.currentSession(); + Transaction tx = session.beginTransaction(); + BindingDO bindingDO; + try { + bindingDO = getBinding(bindingName, session); + if (!bindingDO.getPolicies().contains(policy)) { + bindingDO.addPolicy(policy); + session.update(bindingDO); + } + tx.commit(); + } catch (Throwable e) { + tx.rollback(); + String msg = "Unable to addPolicy"; + log.error(msg, e); + throw new RuntimeException(msg, e); + } + } + + private BindingDO getBinding(String name, Session session) { + Criteria criteria = session.createCriteria(BindingDO.class); + criteria.add(Expression.eq("name", name.trim())); + return (BindingDO) criteria.uniqueResult(); + } } Modified: branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingDO.java URL: http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingDO.java?rev=18228&r1=18227&r2=18228&view=diff ============================================================================== --- branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingDO.java (original) +++ branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingDO.java Mon Jun 9 06:01:11 2008 @@ -5,6 +5,10 @@ public class BindingDO extends AbstractDataObject { + public static final int SOAP11_BINDING = 101; + public static final int SOAP12_BINDING = 105; + public static final int HTTP_BINDING = 109; + private Set bindingOperations = new HashSet(); private Set policies = new HashSet(); String name; @@ -21,6 +25,9 @@ public void setPolicies(Set policies) { this.policies = policies; } + public void addPolicy(BindingPolicyDO bindingPolicy) { + this.policies.add(bindingPolicy); + } public String getName() { return name; } Modified: branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingPolicyDO.java URL: http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingPolicyDO.java?rev=18228&r1=18227&r2=18228&view=diff ============================================================================== --- branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingPolicyDO.java (original) +++ branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingPolicyDO.java Mon Jun 9 06:01:11 2008 @@ -1,6 +1,7 @@ package org.wso2.wsas.persistence.dataobject; public class BindingPolicyDO extends AbstractDataObject { + private String uuid; private String policy; private BindingDO binding; Modified: branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServicePolicyDO.java URL: http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServicePolicyDO.java?rev=18228&r1=18227&r2=18228&view=diff ============================================================================== --- branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServicePolicyDO.java (original) +++ branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServicePolicyDO.java Mon Jun 9 06:01:11 2008 @@ -67,6 +67,8 @@ public static final int SOAP12_BINDING_IN_MSG = 107; public static final int SOAP12_BINDING_OUT_MSG = 108; + public static final int HTTP_BINDING = 109; + private String policy; private String uuid; private int type; Added: branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/util/BindingUtil.java URL: http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/util/BindingUtil.java?pathrev=18228 ============================================================================== --- (empty file) +++ branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/util/BindingUtil.java Mon Jun 9 06:01:11 2008 @@ -0,0 +1,43 @@ +package org.wso2.wsas.util; + +import org.apache.axiom.soap.SOAP11Constants; +import org.apache.axiom.soap.SOAP12Constants; +import org.apache.axis2.description.AxisBinding; +import org.apache.axis2.description.WSDL2Constants; +import org.apache.axis2.description.java2wsdl.Java2WSDLConstants; + +public class BindingUtil { + public static boolean isSoap11Binding(AxisBinding binding) { + String type = binding.getType(); + if (Java2WSDLConstants.TRANSPORT_URI.equals(type) + || WSDL2Constants.URI_WSDL2_SOAP.equals(type)) { + String v = (String) binding + .getProperty(WSDL2Constants.ATTR_WSOAP_VERSION); + if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(v)) { + return true; + } + } + return false; + } + + public static boolean isSoap12Binding(AxisBinding binding) { + String type = binding.getType(); + if (Java2WSDLConstants.TRANSPORT_URI.equals(type) + || WSDL2Constants.URI_WSDL2_SOAP.equals(type)) { + String v = (String) binding + .getProperty(WSDL2Constants.ATTR_WSOAP_VERSION); + if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(v)) { + return true; + } + } + return false; + } + + public static boolean isHttpBinding(AxisBinding binding) { + String type = binding.getType(); + if (WSDL2Constants.URI_WSDL2_HTTP.equals(type)) { + return true; + } + return false; + } +} _______________________________________________ Wsas-java-dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/wsas-java-dev
