-
Feature Request
-
Resolution: Won't Do
-
Major
-
None
-
None
-
None
As http://en.wikipedia.org/wiki/List_of_web_service_frameworks shows that there are only 2 frameworks supporting the WS-SecurityPolicy Specification right now.
A description of CXF demonstrates that the WS-SecurityPolicies can be generated into the WSDL.
It would be a big plus if JBoss would also contain this feature.
It would light up the development and concentrate the declaration of security requirements to one place.
There would no longer be the necessity to package a hand made WSDL into a client side roll-out.
JBoss should should be able to generate a wsdl including the security policy as described in the
OASIS spec http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html
and 'http://docs.oasis-open.org/ws-sx/security-policy/examples/ws-sp-usecases-examples.html#_Toc274723235'.
Code Examples:
----------- Service class ----------------
@WebService(name = "VasCenterTs", targetNamespace = "http://com.os.m2m.servicegw.ws/VasCenterTs", serviceName = "VasCenterTs")
@SOAPBinding(style = SOAPBinding.Style.RPC)
@Remote(VasCenterTsRemote.class)
@Local(VasCenterTsLocal.class)
@EndpointConfig(configName = "Standard WSSecurity Endpoint")
@WebContext(contextRoot = "/DraFaLa", urlPattern = "/VasCenter", authMethod = "BASIC", secureWSDLAccess = false)
@SecurityDomain(value = "DraFaLa")
@Stateless
public class VasCenterTs implements VasCenterTsRemote, VasCenterTsLocal
------ WSDL --------------------
<definitions name='VasCenterTs' targetNamespace='http://com.os.m2m.servicegw.ws/VasCenterTs' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://com.os.m2m.servicegw.ws/VasCenterTs' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<types>
<xs:schema targetNamespace='http://com.os.m2m.servicegw.ws/VasCenterTs' version='1.0' xmlns:tns='http://com.os.m2m.servicegw.ws/VasCenterTs' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
<xs:complexType name='stringResult'>
<xs:complexContent>
<xs:extension base='tns:result'>
<xs:sequence>
<xs:element minOccurs='0' name='theString' type='xs:string'/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name='result'>
<xs:sequence>
<xs:element name='code' type='xs:int'/>
<xs:element minOccurs='0' name='description' type='xs:string'/>
<xs:element minOccurs='0' name='shortDescription' type='xs:string'/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</types>
<message name='VasCenterTs_processDeviceData'>
<part name='timestamp' type='xsd:string'></part>
<part name='vasCenterID' type='xsd:string'></part>
<part name='tcmEcuID' type='xsd:string'></part>
<part name='encryptedContent' type='xsd:string'></part>
<part name='messageID' type='xsd:string'></part>
</message>
<message name='VasCenterTs_notifyMessageSentStatusResponse'>
<part name='return' type='tns:result'></part>
</message>
<message name='VasCenterTs_processDeviceDataResponse'>
<part name='return' type='tns:stringResult'></part>
</message>
<message name='VasCenterTs_notifyMessageSentStatus'>
<part name='timestamp' type='xsd:string'></part>
<part name='vasCenterID' type='xsd:string'></part>
<part name='tcmEcuID' type='xsd:string'></part>
<part name='status' type='xsd:string'></part>
<part name='encryptedContent' type='xsd:string'></part>
<part name='messageID' type='xsd:string'></part>
</message>
<portType name='VasCenterTs'>
<operation name='notifyMessageSentStatus' parameterOrder='timestamp vasCenterID tcmEcuID status encryptedContent messageID'>
<input message='tns:VasCenterTs_notifyMessageSentStatus'></input>
<output message='tns:VasCenterTs_notifyMessageSentStatusResponse'></output>
</operation>
<operation name='processDeviceData' parameterOrder='timestamp vasCenterID tcmEcuID encryptedContent messageID'>
<input message='tns:VasCenterTs_processDeviceData'></input>
<output message='tns:VasCenterTs_processDeviceDataResponse'></output>
</operation>
</portType>
<binding name='VasCenterTsBinding' type='tns:VasCenterTs'>
<soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
<operation name='notifyMessageSentStatus'>
<soap:operation soapAction=''/>
<input>
<soap:body namespace='http://com.os.m2m.servicegw.ws/VasCenterTs' use='literal'/>
</input>
<output>
<soap:body namespace='http://com.os.m2m.servicegw.ws/VasCenterTs' use='literal'/>
</output>
</operation>
<operation name='processDeviceData'>
<soap:operation soapAction=''/>
<input>
<soap:body namespace='http://com.os.m2m.servicegw.ws/VasCenterTs' use='literal'/>
</input>
<output>
<soap:body namespace='http://com.os.m2m.servicegw.ws/VasCenterTs' use='literal'/>
</output>
</operation>
</binding>
<service name='VasCenterTs'>
<port binding='tns:VasCenterTsBinding' name='VasCenterTsPort'>
<soap:address location='http://padczoth2:8080/DraFaLa/VasCenter'/>
</port>
</service>
</definitions>
-----------------------------------------------------------