LDAP failed to connect due to Unexpected SSLSocketFactory implementation

Symptoms

JIRA fails to connect to LDAP server, failing 

The following appears in the atlassian-jira.log:

QuartzWorker-0 ERROR ServiceRunner     [atlassian.crowd.directory.DbCachingDirectoryPoller] Error occurred while refreshing the cache for directory [ 10000 ].
com.atlassian.crowd.exception.OperationFailedException: org.springframework.ldap.CommunicationException: xxx.xxx.xxx.xxx:636; nested exception is javax.naming.CommunicationException: xxx.xxx.xxx.xxx:636 [Root exception is java.lang.RuntimeException: Unexpected SSLSocketFactory implementation: com.ibm.jsse2.SSLSocketFactoryImpl]
	at com.atlassian.crowd.directory.SpringLDAPConnector.searchEntitiesWithRequestControls(SpringLDAPConnector.java:416)
	at com.atlassian.crowd.directory.SpringLDAPConnector.searchEntities(SpringLDAPConnector.java:384)
	at com.atlassian.crowd.directory.SpringLDAPConnector.searchUserObjects(SpringLDAPConnector.java:574)
	at com.atlassian.crowd.directory.SpringLDAPConnector.searchUsers(SpringLDAPConnector.java:944)
	at com.atlassian.crowd.directory.ldap.cache.RemoteDirectoryCacheRefresher.findAllRemoteUsers(RemoteDirectoryCacheRefresher.java:41)
	at com.atlassian.crowd.directory.ldap.cache.RemoteDirectoryCacheRefresher.synchroniseAllUsers(RemoteDirectoryCacheRefresher.java:60)
	at com.atlassian.crowd.directory.ldap.cache.AbstractCacheRefresher.synchroniseAll(AbstractCacheRefresher.java:40)
	at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:619)
	at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:63)
	at com.atlassian.crowd.directory.DbCachingDirectoryPoller.pollChanges(DbCachingDirectoryPoller.java:50)
	at com.atlassian.crowd.manager.directory.monitor.poller.DirectoryPollerJob.execute(DirectoryPollerJob.java:34)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
	at com.atlassian.multitenant.quartz.MultiTenantThreadPool$MultiTenantRunnable.run(MultiTenantThreadPool.java:72)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: org.springframework.ldap.CommunicationException: xxx.xxx.xxx.xxx:636; nested exception is javax.naming.CommunicationException: xxx.xxx.xxx.xxx:636 [Root exception is java.lang.RuntimeException: Unexpected SSLSocketFactory implementation: com.ibm.jsse2.SSLSocketFactoryImpl]
	at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:98)
	at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:266)
	at org.springframework.ldap.core.support.AbstractContextSource.getContext(AbstractContextSource.java:106)
	at org.springframework.ldap.core.support.AbstractContextSource.getReadWriteContext(AbstractContextSource.java:138)
	at org.springframework.ldap.transaction.compensating.manager.TransactionAwareContextSourceProxy.getReadWriteContext(TransactionAwareContextSourceProxy.java:94)
	at org.springframework.ldap.transaction.compensating.manager.TransactionAwareContextSourceProxy.getReadOnlyContext(TransactionAwareContextSourceProxy.java:65)
	at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:287)
	at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:237)
	at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:624)
	at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:535)
	at com.atlassian.crowd.directory.ldap.LdapTemplateWithClassLoaderWrapper$1.call(LdapTemplateWithClassLoaderWrapper.java:56)
	at com.atlassian.crowd.directory.ldap.LdapTemplateWithClassLoaderWrapper$1.call(LdapTemplateWithClassLoaderWrapper.java:53)
	at com.atlassian.crowd.directory.ldap.LdapTemplateWithClassLoaderWrapper.invokeWithContextClassLoader(LdapTemplateWithClassLoaderWrapper.java:43)
	at com.atlassian.crowd.directory.ldap.LdapTemplateWithClassLoaderWrapper.search(LdapTemplateWithClassLoaderWrapper.java:53)
	at com.atlassian.crowd.directory.SpringLDAPConnector.searchEntitiesWithRequestControls(SpringLDAPConnector.java:412)
	... 13 more
Caused by: javax.naming.CommunicationException: xxx.xxx.xxx.xxx:636 [Root exception is java.lang.RuntimeException: Unexpected SSLSocketFactory implementation: com.ibm.jsse2.SSLSocketFactoryImpl]
	at com.sun.jndi.ldap.Connection.<init>(Connection.java:211)
	at com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:128)
	at com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1592)
	at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2690)
	at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:308)
	at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:187)
	at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:205)
	at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:148)
	at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:78)
	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:250)
	at javax.naming.InitialContext.initializeDefaultInitCtx(InitialContext.java:318)
	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:348)
	at javax.naming.InitialContext.internalInit(InitialContext.java:286)
	at javax.naming.InitialContext.init(InitialContext.java:308)
	at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:104)
	at org.springframework.ldap.core.support.LdapContextSource.getDirContextInstance(LdapContextSource.java:43)
	at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:254)
	... 26 more
Caused by: java.lang.RuntimeException: Unexpected SSLSocketFactory implementation: com.ibm.jsse2.SSLSocketFactoryImpl
	at com.atlassian.crowd.directory.ssl.LdapHostnameVerificationSSLSocketFactory.<init>(LdapHostnameVerificationSSLSocketFactory.java:39)
	at com.atlassian.crowd.directory.ssl.LdapHostnameVerificationSSLSocketFactory.getDefault(LdapHostnameVerificationSSLSocketFactory.java:48)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:611)
	at com.sun.jndi.ldap.Connection.createSocket(Connection.java:284)
	at com.sun.jndi.ldap.Connection.<init>(Connection.java:198)
	... 42 more

Cause

JIRA is using a JAVA platform different than the supported ones

Resolution

  • Shutdown JIRA
  • Install JAVA as described on Installing Java
  • Restart the application
Last modified on Mar 30, 2016

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.