Spring安全性:每种使用Spring安全性的应用程序中都存在UserDetails和UserDetailsService吗?
我有个问题要问Spring Security 3.0.5 当使用Spring Security保护web应用程序时,“UserDetails”-对象是否始终存在?我的意思是,使用Spring安全性的每一种应用程序(即使在LDAP、X.509或CAS等其他系统中)是否也提供了“UserDetails”对象 此外,如果是,那么每个应用程序是否都有UserDetailsService 嗯,通读Spring安全文档我不这么认为,但我读到核心组件总是存在的(SecurityContextHolder、SecurityContext、身份验证)。如果是这样,如果身份验证对象不包含UserDetails对象,那么它有什么意义Spring安全性:每种使用Spring安全性的应用程序中都存在UserDetails和UserDetailsService吗?,spring,spring-security,Spring,Spring Security,我有个问题要问Spring Security 3.0.5 当使用Spring Security保护web应用程序时,“UserDetails”-对象是否始终存在?我的意思是,使用Spring安全性的每一种应用程序(即使在LDAP、X.509或CAS等其他系统中)是否也提供了“UserDetails”对象 此外,如果是,那么每个应用程序是否都有UserDetailsService 嗯,通读Spring安全文档我不这么认为,但我读到核心组件总是存在的(SecurityContextHolder、Se
谢谢大家! 简短的回答是否定的。不同类型的身份验证机制可以使用不同类型的身份验证 但是,许多机制确实使用UsernamePasswordAuthenticationToken,它引用UserDetails对象。例如:UsernamePasswordAuthenticationFilter+DaoAuthenticationProvider。还包括UsernamePasswordFilter+LdapAuthenticationProvider 但是:只有DaoAuthenticationProviders使用UserDetails服务
在实践中,如果您使用web表单向用户请求用户名/密码,那么最终可能会使用UsernamePasswordAuthenticationToken,从而使用UserDetails。但是,如果您使用的是DaoAuthenticationProvider,您将只使用UserDetails服务。谢谢!但是SecurityContextHolder、SecurityContext和身份验证呢?必须始终使用这些对象,但SecurityContext引用的身份验证只是一个接口。UsernamePasswordAuthenticationToken是一种身份验证类型,它引用了UserDetails,但也可以使用其他类型的身份验证(请参阅Javadoc了解身份验证)。谢谢。我知道可以使用其他类型的身份验证。我只是想知道,是否每个由spring security保护的应用程序都有一个SecurityContextHolder、一个SecurityContext和身份验证对象(不管它到底是哪种令牌,对我来说都无关紧要,它们都代表主体,不是吗?)。这三个对象被描述为“核心”组件,这就是我想知道它的原因!:-)是的,这些信息始终存在,但UserDetails/UserDetailsService不存在。