AndroMDA allows a WS-Security header plus a customized header to be added to the service interface definition (wsdl). These headers then become part of the service interface specification.

To add a customized header, add the <<CustomHeader>> stereotype to the webservice or webservice operation. Specify the header namespace, abbreviation, xsd location, header_element, and header_partName. These values are translated into the appropriate values in the wsdl definition.

The service header will now be part of the wsdl service interface specification. The wsdl output will look something like:

    <wsdl:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" location="../../../oasis-200401-wss-wssecurity-secext-1.0.xsd"/>
    <wsdl:binding name="ServiceV1SoapBinding" type="impl:ServiceV1">
        <wsdl:operation name="retrieveServiceVersion">
            <soap:operation soapAction="retrieveServiceVersion" style="document" />
            <wsdl:input name="retrieveServiceVersion">
                <soap:body use="literal"/>
                <soap:header message="impl:ServiceContext" part="ServiceContext" use="literal"/>
                <soap:header message="impl:wsse" part="wsse" use="literal"/>


In the future, we will fully implement WS-Security, WS-Addressing, and WS-Policy in the generated code. Stereotypes for those implementations may be in the profiles.


Next up is the REST WebServices section.