java - example - spring security active directory authentication
¡Jugar! Autenticación del marco con LDAP (1)
Tengo un ejemplo para autenticar al usuario que usa LDAP y el marco de juego. Aquí está el código espero que esto ayude
public class ActiveDirectoryServices {
public static final String ldapURL = Play.application().configuration().getString("ActiveDirectory.url");
public static final String domainName = Play.application().configuration().getString("ActoveDirectory.DomainName");
public static final int timeout = Play.application().configuration().getInt("ActoveDirectory.timeout");
public static Promise<Boolean> authenticate(String username, String password) throws AuthenticationException, CommunicationException, NamingException{
Hashtable<String, String> env = new Hashtable<String,String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put("com.sun.jndi.ldap.connect.timeout", ""+(timeout*1000));
env.put(Context.PROVIDER_URL, ldapURL);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, username+domainName);
env.put(Context.SECURITY_CREDENTIALS, password);
DirContext authContext = null;
authContext = new InitialDirContext(env);
return Promise.pure(Boolean.TRUE);
}
}
Luego, en un controlador, uso el código anterior de la siguiente manera:
try {
Promise<Boolean> promiseActiveDirectoryCheck = ActiveDirectoryServices.authenticate(userName, password);
return promiseActiveDirectoryCheck.flatMap(response -> {
if(response){
return Promise.pure(ok("access granted"));
}
});
}catch (AuthenticationException exp) {
return Promise.pure(ok("access denied"));
}catch (CommunicationException exp) {
return Promise.pure(ok("The active directory server is not reachable"));
}catch (NamingException exp) {
return Promise.pure(ok("active directory domain name does not exist"));
}
Estoy escribiendo una aplicación web con Play2 para Java y quiero usar LDAP para autenticación de usuarios ... Soy nuevo en LDAP y realmente no sé exactamente cómo funciona y cómo usarlo en Play ...
por ahora, he encontrado este complemento que probablemente debería ser el truco, pero no puedo encontrar ningún ejemplo de él que use la autenticación LDAP. ¿Conoces algún tutorial que pueda ayudarme a dar los primeros pasos?
También encontré esta publicación de blog que se ve bien, pero no usa complementos de autenticación de reproducción, por lo que podría no ser tan flexible. http://www.philipp.haussleiter.de/2013/07/adding-ldap-authentication-to-a-play-2-application/