You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "sushl (JIRA)" <ji...@apache.org> on 2013/10/07 12:15:41 UTC
[jira] [Created] (AXIS2-5610) SSL Connection fail through Proxy
server(mod_proxy) using java(Axis2)
sushl created AXIS2-5610:
----------------------------
Summary: SSL Connection fail through Proxy server(mod_proxy) using java(Axis2)
Key: AXIS2-5610
URL: https://issues.apache.org/jira/browse/AXIS2-5610
Project: Axis2
Issue Type: Bug
Components: client-api, wsdl
Affects Versions: 1.6.1
Environment: OS:Windows 7
IDE: Eclipse
WebService: C#
Client Application: java
Reporter: sushl
I am using Java(Axis2) to connect .net web service. created stub class from WSDL2Java Converter.
Proxy Server : Apache mod_proxy
Try to access code from C# and Java
below all cases are working with the C#, but getting error with the Java(Axis2)
(SSL = true, Proxy = false : Success)
(SSl = false, Proxy = true : Success)
(SSL = true, Proxy = true : Fail (class javax.net.ssl.SSLException))
code:
ServiceStub objStub = new ServiceStub(sWebServiceURL);
//Setting Chunk http data to false and Cookie ID
objStub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE);
objStub._getServiceClient().getOptions().setProperty("customCookieID",DEF_COOKIEID);
objStub._getServiceClient().getOptions().setManageSession(true);
// In case of Proxy setting (HttpTransportProperties.ProxyProperties)
objStub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.PROXY, objProxyProperties);
objStub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE, objAuthenticator);
// to work without certifcate
objProtocol = new Protocol("https", new NaiveSocketFactory(), 443);
objStub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.CUSTOM_PROTOCOL_HANDLER, objProtocol);
// inside NaiveSocketFactory I am using follwoing function
public Socket createSocket(final String host,
final int port,
final InetAddress localAddress,
final int localPort,
final HttpConnectionParams params) throws IOException, UnknownHostException, ConnectTimeoutException
{
if (params == null)
{
throw new IllegalArgumentException("Parameters may not be null");
}
int timeout = params.getConnectionTimeout();
SocketFactory socketfactory = getSSLContext().getSocketFactory();
if (timeout == 0)
{
return socketfactory.createSocket(host, port, localAddress, localPort);
}
else
{
Socket socket = socketfactory.createSocket();
SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
SocketAddress remoteaddr = new InetSocketAddress(host, port);
socket.bind(localaddr);
socket.connect(remoteaddr, timeout);
return socket;
}
}
private static SSLContext createEasySSLContext()
{
try
{
SSLContext context = SSLContext.getInstance("SSL");
context.init(null, new TrustManager[] {new NaiveTrustManager()}, null);
return context;
}
catch (Exception e)
{
LOG.error(e.getMessage(), e);
throw new HttpClientError(e.toString());
}
}
Exception Message: Unrecognized SSL message, plaintext connection? Stack Trace: org.apache.axis2.AxisFault: Unrecognized SSL message, plaintext connection?
Apache access.log
10.128.43.60 - - [24/Sep/2013:13:49:02 +0900] "\x16\x03\x01" 501 215
--
This message was sent by Atlassian JIRA
(v6.1#6144)
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org