[
https://issues.apache.org/jira/browse/AXIS2-2944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12793559#action_12793559
]
gerhard presser commented on AXIS2-2944:
----------------------------------------
public class TrustAllTrustManager implements X509TrustManager {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs,
String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs,
String authType) {
}
}
public class SSLProtocolSocketFactory implements SecureProtocolSocketFactory {
SSLContext ctx;
public SSLProtocolSocketFactory(SSLContext ctx) {
this.ctx = ctx;
}
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 = ctx.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;
}
}
/**
* @see
SecureProtocolSocketFactory#createSocket(java.lang.String,int,java.net.InetAddress,int)
*/
public Socket createSocket(String host, int port, InetAddress
clientHost, int clientPort) throws IOException, UnknownHostException {
return ctx.getSocketFactory().createSocket(host, port,
clientHost, clientPort);
}
/**
* @see SecureProtocolSocketFactory#createSocket(java.lang.String,int)
*/
public Socket createSocket(String host, int port) throws IOException,
UnknownHostException {
return ctx.getSocketFactory().createSocket(host, port);
}
/**
* @see
SecureProtocolSocketFactory#createSocket(java.net.Socket,java.lang.String,int,boolean)
*/
public Socket createSocket(Socket socket, String host, int port,
boolean autoClose) throws IOException, UnknownHostException {
return ctx.getSocketFactory().createSocket(socket, host, port,
autoClose);
}
}
SSLContext sslCtx = SSLContext.getInstance("
sslCtx.init(null, new TrustManager[] {new TrustAllTrustManager()}, null);
aklauth._getServiceClient().getOptions().setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER,
new Protocol("https",(ProtocolSocketFactory)new
SSLProtocolSocketFactory(sslCtx),443));
> Allow https connection without a keystore
> -----------------------------------------
>
> Key: AXIS2-2944
> URL: https://issues.apache.org/jira/browse/AXIS2-2944
> Project: Axis2
> Issue Type: New Feature
> Components: transports
> Affects Versions: 1.2
> Reporter: Michael Davis
> Assignee: Saminda Wishwajith Abeyruwan
> Priority: Minor
>
> Normally when we connect over https, if the server sends us a certificate
> that is not well known, we have to specify a keystore using system properties:
> System.setProperty("javax.net.ssl.trustStore","path to keystore" );
> System.setProperty("javax.net.ssl.trustStorePassword","apache");
> We should allow clients to either provide a certificate by some other means,
> such as hard-coding the bytes, or allow the client to disregard the
> certificate and trust the server. This is because clients are sometimes
> deployed on systems where the developers have no access to the file system
> and therefore cannot configure the keystores.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.