401 using basic auth

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

401 using basic auth

Ahmed Bakran
Hi,

I am trying to invoke a soap service and am getting a 401 repeatedly using the axis2 1.6.2 client.

If I curl or use the browser I am able to get in successfully.  Below is my code snippet, as well as the logs.

    MyStub stub = new MyStub("http://myurl");
   HttpTransportProperties.Authenticator basicAuthentication = new HttpTransportProperties.Authenticator();
   basicAuthentication.setUsername("username");
   basicAuthentication.setPassword("password");
   basicAuthentication.setPreemptiveAuthentication(true);

   Options options = stub._getServiceClient().getOptions();
   options.setProperty(HTTPConstants.AUTHENTICATE, basicAuthentication);

                   get_StatusResponse = stub.get_Status(requestParams);


Logs:

2014-12-18 18:07:20,737 DEBUG IAN=           [httpclient.wire.header] (main) >> "POST /WebService_V3/WebService.asmx HTTP/1.1[\r][\n]"
2014-12-18 18:07:20,751 DEBUG IAN=           [httpclient.wire.header] (main) >> "Content-Type: application/soap+xml; charset=UTF-8; action="https://servicehost.com/Get_Status"[\r][\n]"
2014-12-18 18:07:20,751 DEBUG IAN=           [httpclient.wire.header] (main) >> "User-Agent: Axis2[\r][\n]"
2014-12-18 18:07:20,751 DEBUG IAN=           [httpclient.wire.header] (main) >> "Authorization: Basic ZSDDzb246OmF0dFJvY2tzIQ\r][\n]"
2014-12-18 18:07:20,751 DEBUG IAN=           [httpclient.wire.header] (main) >> "Host: servicehost.com[\r][\n]"
2014-12-18 18:07:20,751 DEBUG IAN=           [httpclient.wire.header] (main) >> "Transfer-Encoding: chunked[\r][\n]"
2014-12-18 18:07:20,751 DEBUG IAN=           [httpclient.wire.header] (main) >> "[\r][\n]"
2014-12-18 18:07:21,106 DEBUG IAN=           [httpclient.wire.content] (main) >> "13a[\r][\n]"
2014-12-18 18:07:21,106 DEBUG IAN=           [httpclient.wire.content] (main) >> "<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body><ns1:Get_Status xmlns:ns1="https://servicehost.com"><ns1:str>hello</ns1:str><ns1:str2>123</ns1:str2></ns1:Get_Status></soapenv:Body></soapenv:Envelope>"
2014-12-18 18:07:21,107 DEBUG IAN=           [httpclient.wire.content] (main) >> "[\r][\n]"
2014-12-18 18:07:21,107 DEBUG IAN=           [httpclient.wire.content] (main) >> "0"
2014-12-18 18:07:21,109 DEBUG IAN=           [httpclient.wire.content] (main) >> "[\r][\n]"
2014-12-18 18:07:21,109 DEBUG IAN=           [httpclient.wire.content] (main) >> "[\r][\n]"
2014-12-18 18:07:21,183 DEBUG IAN=           [httpclient.wire.header] (main) << "HTTP/1.1 401 Unauthorized[\r][\n]"
2014-12-18 18:07:21,183 DEBUG IAN=           [httpclient.wire.header] (main) << "HTTP/1.1 401 Unauthorized[\r][\n]"
2014-12-18 18:07:21,186 DEBUG IAN=           [httpclient.wire.header] (main) << "Cache-Control: private[\r][\n]"
2014-12-18 18:07:21,187 DEBUG IAN=           [httpclient.wire.header] (main) << "Content-Type: text/html[\r][\n]"
2014-12-18 18:07:21,187 DEBUG IAN=           [httpclient.wire.header] (main) << "Server: Microsoft-IIS/7.5[\r][\n]"
2014-12-18 18:07:21,187 DEBUG IAN=           [httpclient.wire.header] (main) << "X-AspNet-Version: 4.0.30319[\r][\n]"
2014-12-18 18:07:21,187 DEBUG IAN=           [httpclient.wire.header] (main) << "WWW-Authenticate: BASIC Realm=servicehost.com[\r][\n]"
2014-12-18 18:07:21,187 DEBUG IAN=           [httpclient.wire.header] (main) << "X-Powered-By: ASP.NET[\r][\n]"
2014-12-18 18:07:21,187 DEBUG IAN=           [httpclient.wire.header] (main) << "Date: Thu, 18 Dec 2014 23:07:45 GMT[\r][\n]"
2014-12-18 18:07:21,188 DEBUG IAN=           [httpclient.wire.header] (main) << "Content-Length: 58[\r][\n]"
2014-12-18 18:07:21,188 DEBUG IAN=           [httpclient.wire.header] (main) << "[\r][\n]"
2014-12-18 18:07:21,193 INFO  IAN=           [org.apache.commons.httpclient.auth.AuthChallengeProcessor] (main) basic authentication scheme selected
2014-12-18 18:07:21,196 INFO  IAN=           [org.apache.commons.httpclient.HttpMethodDirector] (main) Failure authenticating with BASIC 'servicehost.com'@servicehost.com:443
2014-12-18 18:07:21,197 DEBUG IAN=           [httpclient.wire.content] (main) << "You do not have permission to view this directory or page."
2014-12-18 18:07:21,203 INFO  IAN=           [org.apache.axis2.transport.http.HTTPSender] (main) Unable to sendViaPost to url[https://servicehost.com/WebService_V3/WebService.asmx]
org.apache.axis2.AxisFault: Transport error: 401 Error: Unauthorized
at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:194)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:404)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:231)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at com.att.ProvisionStub.get_SIM_Status(ProvisionStub.java:12830)
at com.ingrid.ibp.isi.server.gsm.AttAdapter.getSimStatus(AttAdapter.java:41)
at com.ingrid.ibp.isi.server.gsm.AttAdaptorTest.testGetSim(AttAdaptorTest.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)