Аутентификация Java LDAP с использованием имени пользователя и пароля

У меня есть рабочий фрагмент кода, с помощью которого я могу аутентифицировать пользователя с помощью dn и пароля. Мое требование состоит в том, чтобы пользователь вводил свое имя пользователя ( sAMAccountName ), и я хочу пройти аутентификацию, используя sAMAccountName и пароль. Как я могу изменить этот код для достижения этой цели?

    String userName = "John P R-Asst General Manager";
    String passWord = "asdfgh123";
    String base ="OU=SOU,DC=example,DC=com";
    String dn = "cn=" + userName + "," + base;

    String ldapURL = "ldap://mdsdc3.example.com:389";
    authEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
    authEnv.put(Context.PROVIDER_URL, ldapURL);
    authEnv.put(Context.SECURITY_AUTHENTICATION, "simple");
    authEnv.put(Context.SECURITY_PRINCIPAL, dn);
    authEnv.put(Context.SECURITY_CREDENTIALS, password);

    try {
        DirContext authContext = new InitialDirContext(authEnv);
        return true;

    } catch (NamingException namEx) {
        return false;
    }
19
задан ROMANIA_engineer 23 November 2015 в 08:42
поделиться