Как сделать пароль Spring Security MD5 перед вызовом LDAP - PullRequest
1 голос
/ 08 ноября 2011

Я работаю над проектом, использующим Spring и Spring Security с LDAP.Мой проект отлично работал с LDAP до того, как мы создали MD5 пароли пользователей.Теперь, когда мы используем MD5 для паролей пользователей, я пытаюсь найти способ в Spring XML сообщить Springs to MD5 пароль перед проверкой LDAP.

Ответы [ 3 ]

1 голос
/ 08 ноября 2011

Пароли следует отправлять в открытом виде по безопасному соединению, они не должны предварительно кодироваться в виде дайджеста или предварительно кодироваться каким-либо образом - предварительно кодированные пароли не позволяют серверу каталогов выполнять проверки качества пароля. Сервер каталогов шифрует или хэширует открытый текстовый пароль и сравнивает пароль с паролем, который зашифрован / хеширован в целевой записи и возвращает успех или неудачу в ответе связывания.

0 голосов
/ 09 ноября 2011

Ответ Терри является правильным, если вы используете аутентификацию bind, клиент Spr Sec LDAP пытается выполнить привязку к LDAP с использованием предоставленного имени пользователя и пароля в виде открытого текста (кстати, именно поэтому SLDAP всегда рекомендуется, если вы используете аутентификацию bind) .

Если вы используете проверку подлинности с помощью сравнения паролей, пароль, который вы используете для сравнения, должен быть хеширован или закодирован, чтобы точно соответствовать паролю, хранящемуся в хранилище LDAP.

Так как похоже, что вы используете аутентификацию bind, у вас все будет в порядке, как сейчас.

Эти понятия довольно хорошо описаны в разделе руководства LDAP .

0 голосов
/ 08 ноября 2011

Попробуйте:

<security:authentication-manager>
        <security:ldap-authentication-provider>
        <security:password-compare>
            <security:password-encoder ref="passwordEncoder">
            </security:password-encoder>
        </security:password-compare>
    </security:ldap-authentication-provider>
</security:authentication-manager>

<bean id="passwordEncoder" 
      class="org.springframework.security.authentication.encoding.Md5PasswordEncoder">
</bean>

Я не пробовал с LDAP.Но он работает для "обычного" (не LDAP) провайдера аутентификации.

...