Как создать и настроить пользовательский UserDetailsByNameServiceWrapper в Spring security 3.0.5? - PullRequest
1 голос
/ 02 сентября 2011

Я использую Spring Security 3.0.5 в моем веб-приложении на основе Spring MVC. Нам нужно проверить четыре параметра для аутентификации, то есть имя пользователя, пароль, компанию и организацию.

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

Обычный сервис UserDetails имеет loadUserByUsername (имя пользователя), но в моем случае мне нужен этот метод, чтобы принять все четыре параметра. Для этого я решил предоставить пользовательскую реализацию UserDetailsByNameServiceWrapper, которая вызывает loadUserByUsername (username).

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

Я не понимаю, как подключить свой пользовательский UserDetailsByNameServiceWrapper в xml-файл весенней безопасности.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 28 февраля 2012

Вместо создания своего собственного UserDetailsByNameServiceWrapper вместо этого вы захотите реализовать AuthenticationUserDetailsService.Этот класс затем может быть добавлен со следующей конфигурацией Spring Security:

<bean id="preAuthAuthProvider" class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider">
    <property name="preAuthenticatedUserDetailsService" ref="yourAuthenticationUserDetailsService" />
</bean>
...