When IS handles a request, it first checks authentication and rejects the request if authentication is invalid. This is true even if the IS service being invoked is set to use the Anonymous ACL.
In the example below, SomeAnonymousService uses the Anonymous ACL. But incorrect HTTP Basic Authentication is presented (wrong/wrong). So IS kills the request and returns 401/Invalid Credentials.
$ curl -X POST http://<IS>:5555/invoke/SomeAnonymousService -u wrong:wrong -d '<cXML><Request/></cXML>' --verbose
...
> Authorization: Basic d3Jvbmc6d3Jvbmc=
...
< HTTP/1.1 401 [ISS.0084.9001] Invalid credentials
Is there a way to convince IS to ignore ‘bad’ authentication? This is for a service which must always run, so that it can send back a formatted XML document.
Basically, this is to make an IS service behave similar to this Ariba.com service.
$ curl -X POST https://service.ariba.com/service/transaction/cxml.asp -u wrong:wrong -d '<cXML><Request/></cXML>'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "cXML.dtd">
<cXML timestamp="2021-09-01T00:44:22-07:00" payloadID="1630482262501-2228299194814794657@10.162.97.208">
<Response>
<Status code="406" text="Not Acceptable">The document could not be parsed: Premature end of document while looking for credentials [ANCLS-125040007]</Status>
</Response>
</cXML>
#cXML#Integration-Server-and-ESB#authentication#webMethods#Ariba