Некоторое время назад я выполнил переход с Acegi Security на Spring Security, и должен сказать, что все прошло довольно гладко, без каких-либо существенных проблем.Поэтому я предполагаю, что эти библиотеки (на самом деле Spring Security - это последняя версия Acegi) не имеют особых различий.
Вы можете включить AuthenticationProvider
реализацию или любую конфигурацию, связанную с безопасностью любого файла конфигурации контекста.Однако, как правило, предпочтительно хранить в отдельном конфигурационном файле Spring XML, имя которого передается в качестве параметра вместе с именем основного конфигурационного файла при создании экземпляра ApplicationContext
.
Предположим, у вас есть класс MyAuthenticationProvider
:
...
import org.springframework.security.providers.AuthenticationProvider;
...
public final class MyAuthenticationProvider implements AuthenticationProvider {
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
...
}
}
Этот класс является обычным компонентом Spring, и поэтому вы можете внедрить туда любой другой компонент, который вам нужен, в частности, объект DAO, который работает с 'Users' Таблица.Внутри authenticate
метода вы получаете частично инициализированный Authentication
объект.Он должен содержать имя пользователя и пароль.Здесь вы можете сравнить учетные данные пользователя с записями базы данных.