Spring Security/Конфигурирование с помощью пространства имён: различия между версиями
Содержимое удалено Содержимое добавлено
TonyR (обсуждение | вклад) |
TonyR (обсуждение | вклад) |
||
Строка 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 с использованием пространства имен.
= Примечания =
|