JAVA - LDAP пароль со специальным символом не работает - PullRequest
1 голос
/ 26 июня 2019

Я пытаюсь создать экран входа в систему в моей системе, где он запрашивает Active Directory, но когда пароль пользователя имеет какой-либо специальный символ, такой как @ и *, он не проверяется.

Нужно ли шифровать пароль для работы? Как я могу это сделать?

Я получаю пароль пользователя через JPasswordField, используя getPassword ().

    boolean valid_login = false;
    String password = new String(pwd.getPassword());

    try {

        LdapContext ctx = null;
        Hashtable<String, String> env = new Hashtable<>();

        try {

            env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
            env.put(Context.SECURITY_AUTHENTICATION, "Simple");
            env.put(Context.SECURITY_PRINCIPAL, user);
            env.put(Context.SECURITY_CREDENTIALS, password);
            env.put(Context.PROVIDER_URL, "ldap://ldap:389/");

            ctx = new InitialLdapContext(env, null);
            valid_login = true;
            ctx.close();

        } catch (NamingException nex) {
            valid_login = false;
        }

    } catch (Exception ex) {
        valid_login = false;            
    }

    return valid_login;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...