Uploaded image for project: 'JBoss Web Services'
  1. JBoss Web Services
  2. JBWS-3153

Show security policies in the wsdl

XMLWordPrintable

      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>
      -----------------------------------------------------------

              Unassigned Unassigned
              rhn-support-wfink Wolf Fink
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: