--------------------------------------------------------------------------------------
ConnectionConfig connectionConfig = new ConnectionConfig();
connectionConfig.setLdapUrl(ldapUrl);
connectionConfig.setConnectionInitializer(new BindConnectionInitializer("baseUserDN", new Credential(pwd)));
PoolConfig poolConfig = new PoolConfig();
poolConfig.setValidateOnCheckOut(true);
poolConfig.setValidatePeriodically(true);
BlockingConnectionPool pool = new BlockingConnectionPool(poolConfig,new DefaultConnectionFactory(connectionConfig));
pool.setValidator(new SearchValidator(new SearchRequest(baseUserDN, new SearchFilter("(objectClass=*)"))));
pool.initialize();
PooledSearchDnResolver dnResolver = new PooledSearchDnResolver(new PooledConnectionFactory(pool));
dnResolver.setBaseDn(serviceAccountSearchBase);
dnResolver.setUserFilter("sAcc={user}");
BlockingConnectionPool authPool = new BlockingConnectionPool(poolConfig,new DefaultConnectionFactory(connectionConfig));
authPool.setValidator(new SearchValidator(new SearchRequest(baseUserDN, new SearchFilter("(objectClass=*)"))));
authPool.initialize();
AuthenticationHandler authHandler = new PooledBindAuthenticationHandler(new PooledConnectionFactory(authPool));
Authenticator authenticator = new Authenticator(dnResolver, authHandler);
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Hostname <<ip address>> does not match the hostname in the server's certificate <<hostname>>
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) ~[?:1.8.0_66]
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) ~[?:1.8.0_66]
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) ~[?:1.8.0_66]
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) ~[?:1.8.0_66]
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509) ~[?:1.8.0_66]
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) ~[?:1.8.0_66]
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[?:1.8.0_66]
at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[?:1.8.0_66]
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) ~[?:1.8.0_66]
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_66]
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:928) ~[?:1.8.0_66]
at sun.security.ssl.AppInputStream.read(AppInputStream.java:105) ~[?:1.8.0_66]
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[?:1.8.0_66]
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) ~[?:1.8.0_66]
at java.io.BufferedInputStream.read(BufferedInputStream.java:345) ~[?:1.8.0_66]
at com.sun.jndi.ldap.Connection.run(Connection.java:860) ~[?:1.8.0_66]
... 1 more
Caused by: java.security.cert.CertificateException: Hostname <<ip address>> does not match the hostname in the server's certificate <<hostname>>
at org.ldaptive.ssl.HostnameVerifyingTrustManager.checkCertificateTrusted(HostnameVerifyingTrustManager.java:79) ~[ldaptive-1.2.3.jar:?]
at org.ldaptive.ssl.HostnameVerifyingTrustManager.checkServerTrusted(HostnameVerifyingTrustManager.java:55) ~[ldaptive-1.2.3.jar:?]
at org.ldaptive.ssl.AggregateTrustManager.checkServerTrusted(AggregateTrustManager.java:129) ~[ldaptive-1.2.3.jar:?]
at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:922) ~[?:1.8.0_66]
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) ~[?:1.8.0_66]
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) ~[?:1.8.0_66]
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[?:1.8.0_66]
at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[?:1.8.0_66]
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) ~[?:1.8.0_66]
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_66]
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:928) ~[?:1.8.0_66]
at sun.security.ssl.AppInputStream.read(AppInputStream.java:105) ~[?:1.8.0_66]
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[?:1.8.0_66]
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) ~[?:1.8.0_66]
at java.io.BufferedInputStream.read(BufferedInputStream.java:345) ~[?:1.8.0_66]
at com.sun.jndi.ldap.Connection.run(Connection.java:860) ~[?:1.8.0_66]