Spring Security предназначен для средств безопасности, связанных с аутентификацией и авторизацией. Вы можете инициировать какое-либо действие, если кто-то вошел в систему, но если вам просто нужно инициировать действие для каждого запроса, то Spring Security не является подходящим местом для этого (согласно бизнес-логике), лучше добавить только фильтр . В любом случае, отвечая на ваш вопрос:
Лучший способ - добавить собственный фильтр в цепочку фильтров Spring Security:
Вы должны перезаписать:
@Configuration
public class CustomWebSecurityConfigurerAdapter
extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.addFilterAfter(
new CustomFilter(), BasicAuthenticationFilter.class);
}
}
и создайте свой собственный фильтр:
public class CustomFilter extends GenericFilterBean {
@Override
public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//your logic here
chain.doFilter(request, response); //it's needed to pass your request father
}
}
Код взят из baeldung.com для получения дополнительной информации