【问题标题】:Spring Security Authentication - Question about the DocumentationSpring Security Authentication - 关于文档的问题
【发布时间】:2011-09-21 03:16:40
【问题描述】:
【问题讨论】:
标签:
java
spring
spring-mvc
spring-security
【解决方案1】:
从登录表单中捕获更多数据的常用方法是使用自定义 WebAuthenticationDetails。
有关如何执行此操作的信息,请参阅 this thread。
【解决方案2】:
这条线是什么意思?
这通常意味着如果您从覆盖的 attemptAuthentication() 方法返回 null,过滤器链将被破坏,并且在 UsernamePasswordAuthenticationFilter 之后不会调用进一步的过滤器。之后,您负责完成身份验证过程,而不是链上的其他过滤器。
您可以查看AbstractAuthenticationProcessingFilter#doFilter()方法源代码行:201。
换句话说,返回null 将花费您额外的工作。
如果您只想覆盖 attemptAuthentication(),您应该在身份验证失败时抛出 AuthenticationException。
如果您想从attemptAuthentication() 返回null,您还应该覆盖doFilter() 并自己处理null 结果。