Spring Security/Конфигурирование с помощью пространства имён: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 160:
 
=== Использование других провайдеров аутентификации ===
На практике могут потребоваться более масштабируемые источник информации о пользователях, чем несколько имен, добавленных в файл контекста приложения. Скорее всего, вы будете хранить информацию о пользователях в чем-то вроде базы данных или LDAP сервера. Конфигурирование с помощью пространства имен LDAP рассматривается в главе LDAP, поэтому мы не будем рассматривать его здесь. Если у вас есть собственная реализация интерфейса <code>UserDetailsService</code>, которая в контексте вашего приложения называется "myUserDetailsService", то вы можете выполнять аутентификацию с его помощью, используя
 
<source lang="xml">
<authentication-manager>
<authentication-provider user-service-ref='myUserDetailsService'/>
</authentication-manager>
</source>
 
Если вы хотите использовать базу данных, то тогда задайте:
 
<source lang="xml">
<authentication-manager>
<authentication-provider>
<jdbc-user-service data-source-ref="securityDataSource"/>
</authentication-provider>
</authentication-manager>
</source>
 
Где "securityDataSource" это имя бина <code>DataSource</code>, заданного в контексте приложения, указывающего на базу данных, содержащую стандартные таблицы данных Spring Security с информацией о пользователе. Кроме того, можно настроить бин Spring Security <code>JdbcDaoImpl</code> и указать его, используя атрибут <code>user-service-ref</code>:
 
<source lang="xml">
<authentication-manager>
<authentication-provider user-service-ref='myUserDetailsService'/>
</authentication-manager>
 
<beans:bean id="myUserDetailsService"
class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl">
<beans:property name="dataSource" ref="dataSource"/>
</beans:bean>
</source>
 
Можно также использовать стандартный <code>AuthenticationProvider</code>:
 
<source lang="xml">
<authentication-manager>
<authentication-provider ref='myAuthenticationProvider'/>
</authentication-manager>
</source>
 
где <code>myAuthenticationProvider</code> имя бина в контексте вашего приложения, который реализует <code>AuthenticationProvider</code>. См. раздел 2.6, “Менеджер аутентификации и пространство имен” для получения дополнительной информации как конфигурировать <code>AuthenticationManager</code> в Spring Security с использованием пространства имен.
 
= Примечания =