Java 如何启用/禁用LDAP用户?

Java 如何启用/禁用LDAP用户?,java,ldap,Java,Ldap,我使用以下java代码对LDAP用户进行身份验证。如果对象使用指定的用户名和密码存在,则此操作将成功。但是,我在用户上没有看到任何允许我激活/停用该用户的属性。具体地说,我只想在用户上设置一个属性,该属性将在不实际删除整个对象的情况下使身份验证失败 这可以直接完成,还是需要编写单独的代码来加载用户并检查字段是否标记为活动或非活动 public static boolean authenticate(String url, String securityAuthentication, String

我使用以下java代码对LDAP用户进行身份验证。如果对象使用指定的用户名和密码存在,则此操作将成功。但是,我在用户上没有看到任何允许我激活/停用该用户的属性。具体地说,我只想在用户上设置一个属性,该属性将在不实际删除整个对象的情况下使身份验证失败

这可以直接完成,还是需要编写单独的代码来加载用户并检查字段是否标记为活动或非活动

public static boolean authenticate(String url, String securityAuthentication, String securityPrincipal, String usernameKey, String username, String password) {
    try {
        Hashtable env = new Hashtable();
        env.put(InitialContext.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
        env.put(InitialContext.PROVIDER_URL, url);
        env.put(InitialContext.SECURITY_AUTHENTICATION, securityAuthentication);
        env.put(InitialContext.SECURITY_PRINCIPAL, usernameKey +"="+ username + securityPrincipal);
        env.put(InitialContext.SECURITY_CREDENTIALS, password );
        // Create the initial context
        DirContext ctx = new InitialDirContext(env);
        return true;
    } catch (NamingException e) {
        return false;
    }
}

编辑:有人告诉我,在中,我们有一个是active directory,另一个是389 directory Server。

您对用户使用的模式是什么?此外,您必须在“finally”块中关闭该上下文。为此,我将使用特定的组。属于该组的用户没有足够的权限登录。。。