axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stadelmann Josef" <josef.stadelm...@axa-winterthur.ch>
Subject AW: 407 Error: Proxy Authentication Required
Date Mon, 26 Sep 2011 09:08:31 GMT
Fahad,

 

We have similar issues with ANT, with the JDK 6.0 or JDK 1.5.0 from  ORACLE/HP up on which
ANT runs.

 

 

QUESTION: what authentication schemas are your proxy server supporting or requesting?

 

 

Given your Client can only deal with Basic authentication, but your Proxy Server likes 

to negotiate and your client cannot negotiate but just wants Basic authentication but 

your proxy server wants NTLM, then Authentication will fail.

 

Because the underlying JAVA SW does either nothing for proper negotiation or does 

it wrong, or the documentation is wrong, or both. 

So it might be good to deliver to the proxy server at least a hint 

 

http.auth.preference=Basic

This is of equal or more importance then passing a domain.

 

 

 

http://download.oracle.com/javase/6/docs/technotes/guides/net/http-auth.html

from ORACLE/SUN gives you an idea.

 

If you read:

Http Authentication

						

Overview

The HTTP protocol handler implements a number of authentication schemes. 

Sun's implementation of Java SE Version 6 supports the following: 

*	HTTP Basic authentication (RFC2617) 
*	HTTP Digest authentication (RFC2617) 
*	NTLM (defined by Microsoft) 
*	Http SPNEGO Negotiate (defined by Microsoft), with the following underlying mechanisms:


*   Kerberos 

*   NTLM 

 

Have you read and clearly understood:

ORCALE/SUN claims that their implementation supports . . .

 

 

BUT Who in fact engages this HTTP protocol?  Would you consider that your application, your
JAVA code must deal with authentication 

to pass a Firewall / Proxy Server when you read the above at ORACLE/SUN ? NO 

So the JVM should invoke a protocol handler which deals with such issues because ethe -Dhttp.proxySWITCHES
we pass are an information for the JVM at first, but OK can be used by JAVA code as well..


 

So we think the JVM does not engage a protocol handler properly. 

 

We come to this conclusion after just a few weeks of troubleshooting 

because ANT cannot use the <get operation unless we add the username and password and more
to the task OR we change ANT to establishes an Authenticator.

 

But why should ANT code or build procedures deal with BUG's belonging to ORACLE/SUN JAVA?

 

A friend of mine, Philippe Vouters writes

 

Josef,

 

This Oracle statement at this URL link I sent you in this mail and which is reproduced below
suffers according to me from absolutely no misinterpretation.

<QUOTE>

Normally, applications do not care which scheme is used to and the implementation automatically
chooses the strongest (most secure) protocol transparently.

</QUOTE>

As this does NOT match Oracle's Java behavior in Oracle's documented conditions, the bug is
in either this Oracle's statement or in Oracle's Java code. No more no less. The rest is absolutely
NOT my concern.

 

Philippe

 

Le 22/09/2011 19:02, Philippe Vouters a écrit :

> Josef,

> 

> The Oracle document at

> http://download.oracle.com/javase/6/docs/technotes/guides/net/http-auth.html

 

 

 

Now Fahad, - I know this is basics not axis2, 

but it might help to understand your problem. 

 

BTW: you may need to watch this using a Wireshark protocol analyzer to see what is going on.

 

And it is worth reading the articles from ym friend Philippe Vouters:

http://vouters.dyndns.org/tima/All-OS-ANT-ANT_and_URLs_authentication.html <http://vouters.dyndns.org/tima/All-OS-ANT-ANT_and_URLs_authentication.html>


http://vouters.dyndns.org/tima/All-OS-Oracle-Java-Problem_attempting_to_go_through_Basic_authentication_required_company_Web_server_proxy.html
<http://vouters.dyndns.org/tima/All-OS-Oracle-Java-Problem_attempting_to_go_through_Basic_authentication_required_company_Web_server_proxy.html>


 

hope this helps. Also what helps and gives you more info thereafter : debugging axis2 transport
sender on such issues.

Josef

 

 

 

 

 

Von: Fahad cv [mailto:fahadcv@gmail.com] 
Gesendet: Freitag, 23. September 2011 13:45
An: java-user@axis.apache.org
Betreff: 407 Error: Proxy Authentication Required

 

Dears

 

I need to access a web service located outside our company. 

Therefore I must use our proxy. But it does not seem to work. Each time I get a 

Transport error: 407 Error: Proxy Authentication Required

 

I tried following in the code

 

 HttpTransportProperties.ProxyProperties HTTPProxyProperties = new HttpTransportProperties.ProxyProperties();

     HTTPProxyProperties.setProxyName("our proxy");

     HTTPProxyProperties.setProxyPort(8080);

     HTTPProxyProperties.setUserName("my user id");

     HTTPProxyProperties.setPassWord(("my password"));

   HTTPProxyProperties.setDomain(("our proxy"));

 

     Options options = client.getOptions();

     options.setProperty(MessageContextConstants.HTTP_PROTOCOL_VERSION,HTTPConstants.HEADER_PROTOCOL_10);

     options.setProperty(HTTPConstants.PROXY,HTTPProxyProperties);

 

I tried below one as well which was worked for one of the user as per this mailing group,
but no luck for me !

     options.setProperty(HTTPConstants.CHUNKED,false);

 

Following are the Stack trace

 

Exception in thread "main" org.apache.axis2.AxisFault: Transport error: 407 Error: Proxy Authentication
Required

      at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:296)

      at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:190)

      at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)

      at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:371)

      at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:209)

      at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448)

      at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:401)

      at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)

      at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)

      at org.csapi.www.wsdl.parlayx.sms.send.v2_2.service.SendSmsServiceStub.sendSms(SendSmsServiceStub.java:1304)

      at org.csapi.www.wsdl.parlayx.sms.send.v2_2.service.SPSendClient.main(SPSendClient.java:132)

 

Thanks in advance

Fahad

 


Mime
View raw message