相关疑难解决方法(0)

Tomcat 8 - LDAP:NameNotFoundException错误代码32,剩余名称为空字符串

尝试将应用程序从WebLogic 12.2.1迁移到Tomcat 8.5.4,Weblogic下的内容是作为LDAP连接的外部JNDI提供程序的条目已迁移到新的ResourceTomcat下.

遵循Stack Overflow上的建议,自定义LdapContextFactory已打包为jarTomcat lib文件夹下的新文件.

在Tomcat server.xml文件中,GlobalNamingResources/Resource已配置以下内容:

    <Resource name="ldapConnection" 
        auth="Container"
        type="javax.naming.ldap.LdapContext"
        factory="com.sample.custom.LdapContextFactory"
        singleton="false"
        java.naming.referral="follow"
        java.naming.factory.initial="com.sun.jndi.ldap.LdapCtxFactory"
        java.naming.provider.url="ldap://some.host:389"
        java.naming.security.authentication="simple"
        java.naming.security.principal="CN=some,OU=some,OU=some,DC=some,DC=a,DC=b"
        java.naming.security.credentials="password"
        com.sun.jndi.ldap.connect.pool="true"
        com.sun.jndi.ldap.connect.pool.maxsize="10"
        com.sun.jndi.ldap.connect.pool.prefsize="4"
        com.sun.jndi.ldap.connect.pool.timeout="30000" />
Run Code Online (Sandbox Code Playgroud)

通过嵌入在Eclipse中的Apache Directory Studio/LDAP Browser等LDAP浏览器浏览LDAP目录时,上述连接可正常工作.

习惯com.sample.custom.LdapContextFactory很简单:

public class LdapContextFactory implements ObjectFactory {

    public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment)
            throws Exception {

        Hashtable<Object, Object> env = new Hashtable<>();
        Reference reference = (Reference) obj;
        Enumeration<RefAddr> …
Run Code Online (Sandbox Code Playgroud)

java tomcat weblogic ldap tomcat8

17
推荐指数
1
解决办法
1898
查看次数

标签 统计

java ×1

ldap ×1

tomcat ×1

tomcat8 ×1

weblogic ×1