package com.mossle.core.util;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.ldap.InitialLdapContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LdapHandler {
private static Logger logger = LoggerFactory.getLogger(LdapHandler.class);
private String ip;
private int port = 389;
private String domainName = "mossle.com";
public boolean check(String username, String password) {
DirContext dirContext = null;
String bindDn = username + "@" + domainName;
logger.info("ad start : {}", bindDn);
Hashtable<String, String> env = new Hashtable<String, String>();
String url = "ldap://" + ip + ":" + port;
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, bindDn);
env.put(Context.SECURITY_CREDENTIALS, password);
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, url);
try {
dirContext = new InitialLdapContext(env, null);
logger.info("dirContext : {}", dirContext);
return true;
} catch (final Exception e) {
logger.info("Failed to authenticate user {} with error {}",
username, e.getMessage());
return false;
} finally {
if (dirContext != null) {
try {
dirContext.close();
} catch (NamingException ex) {
logger.error(ex.getMessage(), ex);
}
}
}
}
public void setIp(String ip) {
this.ip = ip;
}
public void setPort(int port) {
this.port = port;
}
public void setDomainName(String domainName) {
this.domainName = domainName;
}
}