NTLM authentication with WebServiceClient

We have a stand-alone SOAP server that we’re trying to make use of from CloverETL’s WebServiceClient (CloverETL Designer 3.4.1.010P).

Our SOAP server is responding to the initial request with a “401 Unauthorized” message, with “WWW-Authenticate: Negotiate” header.

401 Unauthorized
Server: POE::Component::Server::SOAP/1.14
WWW-Authenticate: Negotiate

FORBIDDEN


The following appears in the Console on the CloverETL side:

WARN  [Axis2 Task] - Unable to respond to any of these challenges: {negotiate=Negotiate}

, and from there the call fails with an “Unauthorized” exception:


org.jetel.exception.JetelRuntimeException: Component [WebServiceClient:WEB_SERVICE_CLIENT] finished with status ERROR.
	at org.jetel.graph.Node.createNodeException(Node.java:535)
	at org.jetel.graph.Node.run(Node.java:514)
	at java.lang.Thread.run(Thread.java:722)
Caused by: com.opensys.cloveretl.component.ws.exception.SendingMessageException: org.apache.axis2.AxisFault: Transport error: 401 Error: (Unauthorized)
	at com.opensys.cloveretl.component.ws.proxy.a.b(Unknown Source)
	at com.opensys.cloveretl.component.ws.proxy.a.a(Unknown Source)
	at com.opensys.cloveretl.component.WebServiceClient.a(Unknown Source)
	at com.opensys.cloveretl.component.WebServiceClient.execute(Unknown Source)
	at org.jetel.graph.Node.run(Node.java:485)
	... 1 more
Caused by: org.apache.axis2.AxisFault: Transport error: 401 Error: (Unauthorized)
	at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:313)
	at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:200)
	at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)
	at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
	at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
	at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:438)
	at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
	at org.apache.axis2.description.OutInAxisOperationClient$NonBlockingInvocationWorker.run(OutInAxisOperation.java:442)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	... 1 more

I have this working with Basic authentication, but am attempting to get pass-through Windows Authentication to work.

I have set Username, Password, and Auth Domain in the WebServiceClient properties. Is there a trick to this?

Hi Abarnett,

There is nothing tricky about WebServiceClient configuration. I can get the same exception when I leave “Auth Domain” paramater empty. Can you please make sure the domain you are entering is correct? Apart that can you provide any further information (such as what WS you are attempting to connect, so that we can try to connect there as well).

Thanks.