【发布时间】:2012-04-11 20:11:39
【问题描述】:
在使用 Spring Security 实现一些安全方面时,我注意到 Authentication 和 UserDetails 都有重复的方法,例如 getAuthorities、getCredentials 等等。
这背后的目的是什么?对我来说,这似乎是一种无用的冗余。
编辑:因为人们懒得检查签名。两个接口都有相同的方法。我不是指getCredentials 和getAuthorities 是相同的。为什么要让人们做出这样的假设?
【问题讨论】:
-
我也对此感到惊讶,但我没有看到一个好的解释。我实现了一个自定义 AuthenticationProvider 并且在
authenticate()方法中我必须返回这个:return new UsernamePasswordAuthenticationToken(new User(username,password, AUTHORITIES),password,AUTHORITIES); -
在对 Spring Security 进行了几次检查后,我认为是这样的:
Authentication仅供 Spring Security 使用。UserDetails仅用于客户端代码。由于不同的编码日期,它们以某种方式相交。所以请记住,Authentication不适合您。希望他们能在 Spring Security 3.0 中清理它。
标签: spring authentication spring-security