Получение значения пароля SHA из базы данных Ldap (ApacheDs) - PullRequest
1 голос
/ 06 августа 2011

У меня есть база данных ldap.Я использую объектный класс inetorgPerson.В этом классе есть атрибут userPassword.Значения userPassword - криптография SHA.Я использую пакет javax.naming.directory для получения значения userPassword.Однако возвращаемое значение не совпадает со значением пароля SHA.Как я могу получить правильное значение?Простые коды:

public ArrayList<String> search(String base, String filter,String[] returningAttributes){
        ArrayList<String> result=new ArrayList<String>();
            SearchControls ctls = new SearchControls();
            ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
            ctls.setReturningAttributes(returningAttributes);

        NamingEnumeration resultEnum = null;
        try {
            resultEnum = ctx.search(base, filter, ctls);
              while (resultEnum.hasMore()) {
                SearchResult res = (SearchResult) resultEnum.next();

                // print DN of entry
               // System.out.println(res.getNameInNamespace());

                // print attributes returned by search
                Attributes attrs = res.getAttributes();
                NamingEnumeration e = attrs.getAll();
                while (e.hasMore()) {
                    Attribute attr = (Attribute) e.next();
                    result.add(attr.toString());
                }
                System.out.println();

            }
            return result;
        } catch (NamingException e) {

        }
        return null;
    }

Ответы [ 2 ]

3 голосов
/ 07 августа 2011

Я хочу сравнить пароль sha в ldap с моим паролем jsf 2

Нет, вы не хотите этого делать.Вы хотите выполнить LDAPContext.reconnect () с новыми учетными данными и позволить LDAP сделать сравнение.

0 голосов
/ 06 августа 2011

Я не уверен, что понимаю ваш вопрос, но если хэш пароля не соответствует ожиданиям, это может быть причиной:

Сервер хранит соленые хэши паролей, которые будут отличаться от sha1(password).

...