小编bsc*_*ach的帖子

Java ldap身份验证问题

我正在尝试让我的自定义Java应用程序使用我们的Active Directory服务器进行身份验证,但由于某种原因我无法让它工作.谁能明白为什么会这样?这是我的方法如下:

private boolean authenticate(String serverName, String userId, String password) throws NamingException {
    DirContext ctx = null;
    Hashtable env = new Hashtable(11);
    boolean b = false;
    try {
        env.put(Context.INITIAL_CONTEXT_FACTORY,
        "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldap://servername.org:389");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, "uid="+ userId +",ou=All Users,dc=site,dc=org");
        env.put(Context.SECURITY_CREDENTIALS, password);
        System.out.println("before context");
        // If there isn't a naming exception then the user is authenticated. Return true
        ctx = new InitialDirContext(env);
        //The user is authenticated.
        b = true;
    } catch (NamingException e) {
        System.out.println("the user is not authenticated return false"); …
Run Code Online (Sandbox Code Playgroud)

java authentication jndi ldap active-directory

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

active-directory ×1

authentication ×1

java ×1

jndi ×1

ldap ×1