Spring Security: существуют ли UserDetails и UserDetailsService в каждом приложении, которое использует Spring Security? - PullRequest
0 голосов
/ 20 мая 2011

У меня есть вопрос к Spring Security 3.0.5.

При использовании Spring Security для защиты веб-приложения существует ли объект UserDetails всегда ? Я имею в виду, все ли приложения (даже в других системах, таких как LDAP, X.509 или CAS), использующие Spring Security, также предоставляют объект UserDetails?

Кроме того, если да, то есть ли у каждого приложения UserDetailsService?

Что ж, читая документацию Spring Security, я так не думаю, но я прочитал, что основные компоненты всегда существуют (SecurityContextHolder, SecurityContext, Authentication). Если да, какой смысл имеет объект Authentication, если он не содержит UserDetails-Object?

Спасибо!

1 Ответ

2 голосов
/ 20 мая 2011

Краткий ответ - Нет. Различные типы механизмов аутентификации могут использовать различные типы Аутентификации .

Однако многие из механизмов действительно используют UsernamePasswordAuthenticationToken, который имеет ссылку на объект UserDetails. Например: UsernamePasswordAuthenticationFilter + DaoAuthenticationProvider. Также UsernamePasswordFilter + LdapAuthenticationProvider.

Но: только DaoAuthenticationProviders используют UserDetailsService.

На практике, если вы запрашиваете у пользователя имя пользователя / пароль с помощью веб-формы, вы, вероятно, в конечном итоге будете использовать UsernamePasswordAuthenticationToken и, следовательно, UserDetails. Но вы будете использовать UserDetailsService, только если вы используете DaoAuthenticationProvider.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...