search cancel

Error loading plugin [Ldap lookup plugin] ... caused by java.lang.UnsatisfiedLinkError: sun/security/ec/ECKeyPairGenerator.isCurveSupported([B)Z

book

Article ID: 215422

calendar_today

Updated On:

Products

Data Loss Prevention Data Loss Prevention Enforce

Issue/Introduction

When attempting to use an LDAP based lookup plugin, the lookup fails, and you find the following error in the Tomcat locahost logs:

java.lang.UnsatisfiedLinkError: sun/security/ec/ECKeyPairGenerator.isCurveSupported([B)Zjava.lang.UnsatisfiedLinkError: sun/security/ec/ECKeyPairGenerator.isCurveSupported([B)Z
 at sun.security.ec.ECKeyPairGenerator.ensureCurveIsSupported(ECKeyPairGenerator.java:135)
 at sun.security.ec.ECKeyPairGenerator.initialize(ECKeyPairGenerator.java:114)
 at java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:674)
 at sun.security.ssl.ECDHCrypt.<init>(ECDHCrypt.java:77)
 at sun.security.ssl.ClientHandshaker.serverKeyExchange(ClientHandshaker.java:826)
 at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:305)
 at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1082)
 at sun.security.ssl.Handshaker.process_record(Handshaker.java:1010)
 at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1079)
 at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1388)
 at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:765)
 at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)
 at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
 at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
 at com.sun.jndi.ldap.Connection.writeRequest(Connection.java:441)
 at com.sun.jndi.ldap.Connection.writeRequest(Connection.java:414)
 at com.sun.jndi.ldap.LdapClient.ldapBind(LdapClient.java:359)
 at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:214)
 at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2791)
 at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:319)
 at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:192)
 at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:210)
 at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:153)
 at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:83)
 at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
 at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
 at javax.naming.InitialContext.init(InitialContext.java:244)
 at javax.naming.InitialContext.<init>(InitialContext.java:216)
 at javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:101)
 at com.vontu.directory.ldap.LdapSource.connect(LdapSource.java:97)
 at com.vontu.directory.ldap.LdapLookup.initializeConnection(LdapLookup.java:152)
 at com.vontu.directory.ldap.LdapLookup.initialize(LdapLookup.java:88)
 at com.vontu.directory.ldap.LdapLookup.<init>(LdapLookup.java:66)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
 at com.vontu.enforce.workflow.attributes.ldap.LdapLookupFactory.<init>(LdapLookupFactory.java:55)
 at com.vontu.enforce.workflow.attributes.ldap.LdapLookupFactoryInitializer.getLookupFactory(LdapLookupFactoryInitializer.java:69)
 at com.vontu.enforce.workflow.attributes.AttributeLookupLoader.createPluginFactory(AttributeLookupLoader.java:135)
 at com.vontu.enforce.workflow.attributes.AttributeLookupLoader.loadFromDatabase(AttributeLookupLoader.java:119)
 at com.vontu.enforce.workflow.attributes.AttributeLookupLoader.getPluginChain(AttributeLookupLoader.java:97)
 at com.vontu.enforce.workflow.attributes.AttributeLookupLoader$$FastClassBySpringCGLIB$$80368f70.invoke(<generated>)
 at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
 at org.springframework.transaction.interceptor.TransactionInterceptor$$Lambda$622/0000000000000000.proceedWithInvocation(Unknown Source)
 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)
 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
 at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
 at com.vontu.enforce.workflow.attributes.AttributeLookupLoader$$EnhancerBySpringCGLIB$$a7aebc61.getPluginChain(<generated>)
 at com.vontu.enforce.workflow.attributes.CustomAttributeLookup.doReloadPlugins(CustomAttributeLookup.java:187)
 at com.vontu.enforce.workflow.attributes.CustomAttributeLookup.reloadPlugins(CustomAttributeLookup.java:627)
 at com.vontu.manager.lookupPlugins.PluginReloadService.reloadPlugins(PluginReloadService.java:135)
 at com.vontu.manager.lookupPlugins.PluginReloadService.doReload(PluginReloadService.java:122)
 at com.vontu.manager.lookupPlugins.PluginReloadService$PluginReloadTask.run(PluginReloadService.java:161)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at java.lang.Thread.run(Thread.java:823)

Cause

This is caused by the executing JRE instance (java.exe) being unable to locate (a correct) sunsec.dll.

Environment

DLP 15.x

Resolution

This may happen if the environment PATH has a reference to a different JRE than the one that the Symantec DLP Manager service is running. Remove JRE directory references from the environment PATH variable that are not to the path that the Symantec DLP services are using.