¿Cómo activo/desactivo un usuario LDAP?

Estoy usando el siguiente código Java para autenticar a un usuario de LDAP. Esto tendrá éxito si el objeto existe con el nombre de usuario y la contraseña especificados. Sin embargo, no veo ninguna propiedad en el usuario que me permita activar/desactivar el usuario. Específicamente, solo quiero establecer una propiedad en el usuario que haría que la autenticación fallara sin eliminar todo el objeto.

¿Se puede hacer esto directamente o necesito escribir un código separado que cargue al usuario y verifique que un campo esté marcado como activo o inactivo?

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;
    }
}

EDITAR: Me dijeron que tenemos uno que es Active Directory y otro que es 389 Directory Server.

preguntado el 12 de junio de 12 a las 21:06

¿Qué esquema estás usando para los usuarios? Además, debe cerrar ese contexto, en un bloque 'finalmente'. -

Yo usaría un grupo específico para este propósito. Los usuarios que pertenecen a ese grupo no tienen suficientes permisos para iniciar sesión... -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.