Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从active directory检索数据_Java_Active Directory - Fatal编程技术网

Java 从active directory检索数据

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

我正在用java和JSP开发一个项目,需要访问active directory进行登录和检索一些值。我已经完成了登录部分(身份验证),但无法获得检索部分的帮助。我对active directory的概念完全陌生,因此请相应地帮助我。 我给出了用于用户身份验证的java类的代码:

 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(“用户名”、“密码”));
}
}