我想在UsernamePasswordAuthenticationFilter之前调用一个方法。attemptAuthentication()
被调用(在应用程序中处理任何其他请求之前)。
我尝试在HandlerInterceptorAdapter。preHandle()
中调用该方法,但这不会在attemptAuthentication()
之前触发,尽管它会处理其他类型的请求。
是否有UsernamePasswordAuthenticationFilter
之前调用的Spring拦截器?
答案 0 :(得分:4)
我猜你在谈论Spring安全过滤器链。
应在UsernamePasswordAuthenticationFilter
有关详细信息,请参阅org.springframework.security.config.http.SecurityFilters
的源代码。
但您也可以使用before
:
<security:custom-filter ref="myFiler" before="FORM_LOGIN_FILTER" />
答案 1 :(得分:3)
否 - 拦截器是Spring MVC的一部分,它始于DispatcherServlet
。在servlet之前调用过滤器。
如果您想在UsernamePasswordAuthenticationFilter
之前调用某些内容,则需要在该过滤器之前插入过滤器。