我想为用户提供使用令牌登录的替代方法。我已经在PreAuthenticationFilter类中处理用户身份验证,但我需要解雇我的
AuthenticationSuccessHandler.onAuthenticationSuccess()
做了
super.onAuthenticationSuccess()
在它的基类
中触发方法 SavedRequestAwareAuthenticationSuccessHandler.
如何从我的预身份验证过滤器中触发AuthenticationSuccessHandler
?我尝试设置SecurityContextHolder
的身份验证,认为它会自动触发AuthenticationSuccessHandler
,但事实并非如此。这就是我试图这样做的方式:
Authentication authentication = new UsernamePasswordAuthenticationToken(Username, Password);
SecurityContextHolder.getContext().setAuthentication(authentication);
不幸的是,这不起作用。所以我需要知道如何从预身份验证过滤器中激活AuthenticationSuccessHandler
。
答案 0 :(得分:0)
你可能会对RememberMeAuthenthicationFilter
如何在spring-security中起作用感到鼓舞。它引用了AuthenticationSuccessHandler
,并手动调用onAuthenticationSuccess
。
答案 1 :(得分:0)
您必须扩展PreAuthenticationFilter并覆盖方法successfulAuthentication。在那里,您可以触发注入的成功处理程序。