Java 从active directory检索数据
我正在用java和JSP开发一个项目,需要访问active directory进行登录和检索一些值。我已经完成了登录部分(身份验证),但无法获得检索部分的帮助。我对active directory的概念完全陌生,因此请相应地帮助我。 我给出了用于用户身份验证的java类的代码:Java 从active directory检索数据,java,active-directory,Java,Active Directory,我正在用java和JSP开发一个项目,需要访问active directory进行登录和检索一些值。我已经完成了登录部分(身份验证),但无法获得检索部分的帮助。我对active directory的概念完全陌生,因此请相应地帮助我。 我给出了用于用户身份验证的java类的代码: package classes; import java.util.Hashtable; import javax.naming.Context; import javax.naming.Na
package classes;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
public class AD_Auth {
private static final String CONTEXT_FACTORY_CLASS ="com.sun.jndi.ldap.LdapCtxFactory";
private static final String domainName = "@xyz.IN";
private static final String providerUrl = "ldap://srdeladc02.xyz.in:123";
public static boolean authenticate(String username, String password) {
try {
Hashtable<Object, Object> env = new Hashtable<Object, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY, CONTEXT_FACTORY_CLASS);
env.put(Context.PROVIDER_URL, providerUrl);
env.put(Context.SECURITY_PRINCIPAL, username + domainName);
env.put(Context.SECURITY_CREDENTIALS, password);
env.put(Context.SECURITY_AUTHENTICATION, "strong");
DirContext ctx = new InitialDirContext(env);
ctx.close();
return true;
} catch (NamingException e) {
System.out.println("Dear User, The username or password you have entered is in correct, please try again.");
}
return false;
}
public static void main(String[] args) {
// if someone emailid is myemail#icar.gov.in then username will be myemail
//System.out.println(AD_Auth.authenticate("username", "password"));
}
}
包类;
导入java.util.Hashtable;
导入javax.naming.Context;
导入javax.naming.NamingException;
导入javax.naming.directory.DirContext;
导入javax.naming.directory.InitialDirContext;
公共类广告授权{
私有静态最终字符串上下文\u FACTORY\u CLASS=“com.sun.jndi.ldap.LdapCtxFactory”;
私有静态最终字符串domainName=“@xyz.IN”;
私有静态最终字符串providerUrl=”ldap://srdeladc02.xyz.in:123";
公共静态布尔身份验证(字符串用户名、字符串密码){
试一试{
Hashtable env=新的Hashtable();
环境放置(Context.INITIAL\u Context\u FACTORY,Context\u FACTORY\u CLASS);
env.put(Context.PROVIDER\u URL,providerUrl);
环境put(Context.SECURITY\u主体,用户名+域名);
环境放置(Context.SECURITY\u凭证、密码);
环境put(Context.SECURITY_认证,“strong”);
DirContext ctx=新的初始DirContext(env);
ctx.close();
返回true;
}捕获(NamingE例外){
System.out.println(“亲爱的用户,您输入的用户名或密码是正确的,请重试。”);
}
返回false;
}
公共静态void main(字符串[]args){
//如果某人的emailid是myemail#icar.gov.in,那么用户名将是myemail
//System.out.println(AD_Auth.authenticate(“用户名”、“密码”));
}
}