Spring Security:UserDetails 和 UserDetailsS​​ervice 是否存在于使用 Spring Security 的每种应用程序中?

发布于 2024-11-08 15:14:57 字数 429 浏览 0 评论 0 原文

我有一个关于 Spring Security 3.0.5 的问题。

当使用Spring Security来保护Web应用程序时,“UserDetails”对象总是存在吗?我的意思是,使用 Spring Security 的每种应用程序(甚至在 LDAP 或 X.509 或 CAS 等其他系统中)是否也提供“UserDetails”对象?

另外,如果是,那么每个应用程序都有一个 UserDetailsS​​ervice 吗?

好吧,通读 Spring Security 文档我不这么认为,但我读到核心组件始终存在(SecurityContextHolder、SecurityContext、Authentication)。如果是这样,如果 Authentication 对象不包含 UserDetails-Object,它有什么意义?

谢谢你!

Ive got a question to Spring Security 3.0.5.

When using Spring Security to secure web application, does a "UserDetails"-Object always exist? I mean, does every kind of application (even in other systems like LDAP or X.509 or CAS) using Spring Security also provide a "UserDetails"-Object?

Also, if yes, does every application have then a UserDetailsService?

Well, reading through the Spring Security documentation I dont think so, but I read that the core components always exist (SecurityContextHolder, SecurityContext, Authentication). If so, what sense does the Authentication object have, if it doesnt contain a UserDetails-Object?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鞋纸虽美,但不合脚ㄋ〞 2024-11-15 15:14:57

简短的答案是否定的。不同类型的身份验证机制可以使用不同类型的 身份验证

但是,许多机制确实使用 UsernamePasswordAuthenticationToken,它具有对 UserDetails 对象的引用。例如:用户名密码验证过滤器+DaoAuthenticationProvider。还有用户名密码过滤器+LdapAuthenticationProvider。

但是:只有 DaoAuthenticationProviders 使用 UserDetailsS​​ervice。

实际上,如果您使用 Web 表单向用户询问用户名/密码,您最终可能会使用 UsernamePasswordAuthenticationToken 以及 UserDetails。但如果您使用 DaoAuthenticationProvider,则仅会使用 UserDetailsS​​ervice。

The short answer is No. Different types of authentication mechanisms can use different types of Authentications.

However, many of the mechanisms do use the UsernamePasswordAuthenticationToken which has a reference to a UserDetails object. For example: UsernamePasswordAuthenticationFilter+DaoAuthenticationProvider. Also UsernamePasswordFilter+LdapAuthenticationProvider.

But: only DaoAuthenticationProviders use a UserDetailsService.

In practice, if you are asking the user for a username/password using a web form you will probably end up using a UsernamePasswordAuthenticationToken and hence a UserDetails. But you will only use a UserDetailsService if you are using a DaoAuthenticationProvider.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文