Java 如何在Tomcat Server.xml中配置自定义JNDIRealm(为LDAP添加了读取超时)

Java 如何在Tomcat Server.xml中配置自定义JNDIRealm(为LDAP添加了读取超时),java,ldap,tomcat6,server.xml,Java,Ldap,Tomcat6,Server.xml,我们使用JNDIRealm Tomcat 6进行LDAP身份验证。可能是由于LDAP片状,一个线程锁定了JNDIRealm.authenticate方法并导致线程转储。为了解决这个问题,添加了扩展JNDIRealm的CustomJNDIRealm类,如下所示 package com.gop.it.msoft; import org.apache.catalina.realm.JNDIRealm; public class CustomJNDIRealm extends JNDIReal

我们使用JNDIRealm Tomcat 6进行LDAP身份验证。可能是由于LDAP片状,一个线程锁定了JNDIRealm.authenticate方法并导致线程转储。为了解决这个问题,添加了扩展JNDIRealm的CustomJNDIRealm类,如下所示

 package com.gop.it.msoft;

 import org.apache.catalina.realm.JNDIRealm;

 public class CustomJNDIRealm extends JNDIRealm {
 protected String readTimeout;
    @Override
    protected Hashtable<String,String> getDirectoryContextEnvironment() {
      Hashtable<String,String> env = new Hashtable<String,String>();
        if(readTimeout != null) env.put("com.sun.jndi.ldap.read.timeout", readTimeout);
    return env;
    }
 }
现在,如何在Server.xml中进行配置?通过执行以下操作,我得到ClassNotFoundException。请帮忙

<Realm allRolesMode="authOnly" className="com.gop.it.msoft.CustomJNDIRealm" connectionURL="ldaps://ldap.gop.com:636" referrals="follow" userPattern="uid={0},ou=People,o=gop.com" readTimeout="5000" userSubtree="false"/>

感谢大家

在加载webapp之前,领域实现必须可用。因此,它必须位于Tomcat的lib目录中的JAR文件中。把它放到webapp自己的WEB-INF/lib中是行不通的。

这是一个关于代码的全新问题,你甚至都没有发布过。我不明白你怎么能理性地期待它的答案,更不用说当你把它作为一个评论发布到另一个答案上。很抱歉EJP缺少协议。这就是我所有的密码。我在我的问题/帖子中分享了。由于这个问题是在同一行,我想继续在同一线程。我会试着把它作为新问题发布。谢谢你的回复。