Camel iMap - ignore SSL certificat

25 views
Skip to first unread message

ibrahimovic zlatan

unread,
Nov 24, 2015, 10:40:30 AM11/24/15
to Camel User Group-Denmark
Hi,

i'm using imap endpoint and i try to ignore SSL certificat by using:


the First class <b>DummySSLSocketFactory</b> :

public class DummySSLSocketFactory extends SSLSocketFactory {
    private SSLSocketFactory factory;

    public DummySSLSocketFactory() {
    try {
        SSLContext sslcontext = SSLContext.getInstance("TLS");
        sslcontext.init(null,
                 new TrustManager[] { new DummyTrustManager()},
                 null);
        factory = (SSLSocketFactory)sslcontext.getSocketFactory();
    } catch(Exception ex) {
        // ignore
    }
    }

    public static SocketFactory getDefault() {
    return new DummySSLSocketFactory();
    }

    public Socket createSocket() throws IOException {
    return factory.createSocket();
    }

    public Socket createSocket(Socket socket, String s, int i, boolean flag)
                throws IOException {
    return factory.createSocket(socket, s, i, flag);
    }

    public Socket createSocket(InetAddress inaddr, int i,
                InetAddress inaddr1, int j) throws IOException {
    return factory.createSocket(inaddr, i, inaddr1, j);
    }

    public Socket createSocket(InetAddress inaddr, int i)
                throws IOException {
    return factory.createSocket(inaddr, i);
    }

    public Socket createSocket(String s, int i, InetAddress inaddr, int j)
                throws IOException {
    return factory.createSocket(s, i, inaddr, j);
    }

    public Socket createSocket(String s, int i) throws IOException {
    return factory.createSocket(s, i);
    }

    public String[] getDefaultCipherSuites() {
    return factory.getDefaultCipherSuites();
    }

    public String[] getSupportedCipherSuites() {
    return factory.getSupportedCipherSuites();
    }
}

the second class <b>DummyTrustManager</b> :

public class DummyTrustManager implements X509TrustManager {

    public void checkClientTrusted(X509Certificate[] cert, String authType) {
    // everything is trusted
    }

    public void checkServerTrusted(X509Certificate[] cert, String authType) {
    // everything is trusted
    }

    public X509Certificate[] getAcceptedIssuers() {
    return new X509Certificate[0];
    }
}


the third class <b>DummyTrustManager</b> to set java mail propeties:
public class AllowAll {
     public void setsslproperties()  {
         
         //DummySSLSocketFactory easy = new EasySSLProtocolSocketFactory();
         Properties props = System.getProperties();
         props.setProperty("mail.imap.ssl.enable", "true");
         props.setProperty("mail.imap.ssl.socketFactory.class","com.mycompany.imapssl.DummySSLSocketFactory");
         props.setProperty("mail.imap.ssl.socketFactory.fallback", "false");
         props.setProperty("mail.imap.socketFactory.port", "993");
         Session session = Session.getInstance(props, null);
         System.out.println(props);
         System.out.println(session);
    }

}

How can i associate this to the iMap EiP to ignore SSL Certificate ?

this is the route:

<route id="timerToLog">
    <from uri="imaps://server:993?username=user_name&password=pass"/>
    <log message="ok"/>
  </route>
Reply all
Reply to author
Forward
0 new messages