How does Gen Call External support runtime authentication
search cancel

How does Gen Call External support runtime authentication


Article ID: 214861


Updated On:


Gen Gen - Host Encyclopedia Gen - Run Time Distributed Gen - Workstation Toolset


How does the Gen Call External feature used for calling a SOAP web service support runtime authentication?


Release : 8.6

Component : Gen Workstation Toolset


If the SOAP/WSDL has the option to capture the username and password then it could be passed in as a request body but most of the time username and password is abstracted from the WSDL and hence supported through the SOAP header.
So Call External supports authentication via the SOAP header user exit function ABRT_xcall_ws_soapheader_exit inside the file abrtexit.c (currently this is for C only):
CA Gen 8.6 > Reference > User Exits > Action Block Runtime User Exits > Windows Action Block Runtime User Exits > ABRT_xcall_ws_soapheader_exit

Here is a sample SOAP header example:
void  ABRT_xcall_ws_soapheader_exit(const char *uri, char* customsoapheader, size_t MaxLen)
    /* below is one example of adding custom soap header */
    //strncpy(customsoapheader, "<wsse:Security xmlns:wsse=\"\"><wsse:UsernameToken><wsse:Username>USER</wsse:Username><wsse:Password>PASSWORD</wsse:Password></wsse:UsernameToken></wsse:Security>\0", MaxLen);

The callexternal.ini file parameter SOAPHEADER_BUFFERSIZE should be updated before using this exit to let the runtime allocate enough buffer for the custom header. The default value is 3000.
CA Gen 8.6 > Developing > Designing > Using the Toolset > Working with Toolset > Use Action Diagram > Assignment Action Statements > Add a Call External Statement > Call External File