[ome-devel] LDAP NoSuchAlgorithmException

McCaughey, Michael J michael.j.mccaughey at Vanderbilt.Edu
Thu Apr 7 16:47:10 BST 2011


Hey all-
When configuring yet another server for LDAP, I've run into a NoSuchAlgorithmException.  Excerpt from log file is here:

************
2011-04-07 10:28:29,825 ERROR [services.blitz.fire.PermissionsVerifierI] (l.Server-4) Exception thrown while checking password for:myuser
ome.conditions.InternalException:  Wrapped Exception: (org.springframework.ldap.CommunicationException):
myldapderver:636; nested exception is javax.naming.CommunicationException: myldapderver:636 [Root exception is java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)]
	at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:98)
	at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContex
tSource.java:266)
	at org.springframework.ldap.core.support.AbstractContextSource.getContext(AbstractContextSo
urce.java:106)
	at org.springframework.ldap.core.support.AbstractContextSource.getReadOnlyContext(AbstractC
ontextSource.java:125)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:30
7)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)
	at $Proxy51.getReadOnlyContext(Unknown Source)
	at ome.logic.LdapImpl.getBase(LdapImpl.java:454)
	at ome.logic.LdapImpl.getContextMapper(LdapImpl.java:414)
	at ome.logic.LdapImpl.findExperimenter(LdapImpl.java:174)
	at ome.logic.LdapImpl.createUserFromLdap(LdapImpl.java:270)
	at ome.security.auth.LdapPasswordProvider.checkPassword(LdapPasswordProvider.java:85)
	at ome.security.auth.PasswordProviders.checkPassword(PasswordProviders.java:42)
	at ome.logic.AdminImpl.checkPassword(AdminImpl.java:1131)
	at ome.services.sessions.SessionManagerImpl$7.doWork(SessionManagerImpl.java:939)
	at sun.reflect.GeneratedMethodAccessor159.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:30
7)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveM
ethodInvocation.java:183)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInv
ocation.java:150)
	at ome.services.util.Executor$Impl$Interceptor.invoke(Executor.java:409)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInv
ocation.java:172)
	at ome.security.basic.EventHandler.invoke(EventHandler.java:157)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInv
ocation.java:172)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java
:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInv
ocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInt
erceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInv
ocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:231)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInv
ocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInv
ocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy56.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRO(SessionManagerImpl.java:
933)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:92
0)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:89
4)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:
72)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)

********
A first look at this suggests there is a problem with the Java truststore, but it is where specified, can be read by the omero service owner, and (with the exception of the local server cert) contains the same trusted certs used successfully on other omero servers.

Any suggestions on where to start looking?  Is there a config problem with the Java install - should SUnJSSE be using something other than Default for the algorithm?


Thanks,
Mike


More information about the ome-devel mailing list