有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Tomcat服务器中配置自定义JNDIRealm(为LDAP添加了读取超时)。xml

我们使用JNDIRealm(Tomcat6)进行LDAP身份验证。可能是由于LDAP片状,一个线程锁定了JNDIRealm。验证方法并导致线程转储。为了解决这个问题,添加了扩展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;
    }
 }

现在,如何在服务器中配置。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"/>

非常感谢


共 (1) 个答案

  1. # 1 楼答案

    Realm实现必须在加载webapp之前可用。所以,它必须位于Tomcat的lib目录中的JAR文件中。将其放入webapp自己的WEB-INF/lib无法工作