Весенняя безопасность пользовательская аутентификация и кодирование паролей


есть ли там учебник или у кого-нибудь есть указатели на то, как сделать следующее С Spring-Security?

задачи:

мне нужно получить соль из моей базы данных для аутентификации имени пользователя и использовать его для шифрования предоставленного пароля (со страницы входа), чтобы сравнить его с сохраненным зашифрованным паролем (он же аутентифицирует пользователя).

дополнительная информация:

я использую пользовательский структура базы данных. А UserDetails объект создается с помощью пользовательского UserDetailsService который в свою очередь использует пользовательский DAOProvider для получения информации из базы данных.

мой до сих пор:

<authentication-manager>
    <authentication-provider user-service-ref="userDetailsService">
    </authentication-provider>
</authentication-manager>

теперь я думаю, что мне нужно

        <password-encoder hash="sha" />

а что еще? Как я могу сказать, что весна безопасности использовать databaseprovided соль для того, чтобы зашифровать пароль?


edit:

я нашел это так сообщение, чтобы быть информативно, но недостаточно: если я определяю источник соли в своем xml для использования кодировщиком паролей, например:

        <password-encoder ref="passwordEncoder">                
            <salt-source ref="saltSource"/>
        </password-encoder>

мне придется написать пользовательский SaltSource для использования моей пользовательской соли. Но это не должно быть найдено внутри

3 52

3 ответа:

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

Редактировать 1-Альтернатива 1 ответы на исходный вопрос

но мне пришлось узнать, что индивидуальный пароль соления является устаревшим подходом, который больше не нужен в Spring Security 3.1, Как я описываю в

редактировать 3 где я оставил некоторые указатели на то, как использовать StandardPasswordEncoder для автоматических солей, которые хранятся с паролем.

для чего это стоит, я написал это сообщение в блоге подробно то, что вы описали: http://rtimothy.tumblr.com/post/26527448708/spring-3-1-security-and-salting-passwords

чтобы получить глобальную соль из боба, используйте язык выражений Spring или SpEL.

<beans:bean id="encoder" 
        class="org.springframework.security.crypto.password.StandardPasswordEncoder">
    <constructor-arg value="#{someotherBean.somePropertyWithAGetterMethod"/>
</beans:bean>