I'm trying to implement WS-Security using the built in web service client. One big problem is that I need to add several namespaces to the actual SOAP-envelope (not the header).
What I want is something like this:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://xml.amadeus.com/2010/06/Security_v1" xmlns:typ="http://xml.amadeus.com/2010/06/Types_v1" xmlns:app="http://xml.amadeus.com/2010/06/AppMdw_CommonTypes_v3" xmlns:ses="http://xml.amadeus.com/2010/06/Session_v3" xmlns:fmp="http://xml.amadeus.com/FMPTBQ_14_1_1A">
I know I can create headers and change them using CREATE SOAP-HEADER and so on and that seems to work fine. I don't really know how (if) I can get hold of the actual SOAP envelope though...
Running 11.3 (on RedHat Linux)
As you have observed, when calling a Web Service through the ABL, the language provides access to the SOAP header but not the SOAP envelope.
That is very unfortunate. This KB entry actually gave me some hope: http://knowledgebase.progress.com/articles/Article/P88147
Currently OpenEdge does not implement any of the WS-Security specifications in either the client or Web Services Adapter (WSA). As a workaround the following can be used:
- Use Sonic ESB as a provider for those security services. This can be easily integrated with ABL applications.