Spring Security/Ключевые сервисы Spring Security: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 29:
 
== DaoAuthenticationProvider ==
Простейшим <code>AuthenticationProvider</code>'ом реализованным в Spring Security является <code>DaoAuthenticationProvider</code>, который также является одним из первых поддерживаемых провайдеров в этом каркасе. Он опирается на <code>UserDetailsService</code> (как DAO) для поиска имя пользователя, пароля и <code>GrantedAuthority</code>. Он идентифицирует пользователей просто сравнивая пароль присланный в <code>UsernamePasswordAuthenticationToken</code> с паролем, который был загружен <code>UserDetailsService</code>. Настройка провайдера довольно проста:
 
<source lang="xml">
<bean id="daoAuthenticationProvider"
class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="inMemoryDaoImpl"/>
<property name="saltSource" ref bean="saltSource"/>
<property name="passwordEncoder" ref="passwordEncoder"/>
</bean>
</source>
 
<code>PasswordEncoder</code> и <code>SaltSource</code> являются необязательными. <code>PasswordEncoder</code> обеспечивает кодирование и декодирование паролей, представленных в объекте <code>UserDetails</code>, который возвращается настроенным <code>UserDetailsService</code>. <code>SaltSource</code> позволяет "добавлять соль" в пароли, что повышает безопасность паролей в аутентификационном репозитории. Ниже это будет обсуждатся более подробно.