我正在使用基于微服务架构的spring-boot构建服务器应用程序,该架构已经有Spring Security来处理基于表单的身份验证。现在要求每个传入的Restful请求都有一个国家代码和区号。我需要验证路径变量中传递的代码是否与本地代码相同。
我无法弄清楚如何以及在何处触发或挂钩Spring Security以添加过滤器,以便在它到达休息控制器之前验证每个请求,并且在代码无效的情况下,过滤器本身发送400状态代码作为响应。
我认为Spring Security中应该有一些可以扩展或自定义的东西来执行此操作吗?
答案 0 :(得分:0)
您需要通过扩展GenericFilterBean覆盖doFilter
方法来创建自定义过滤器。
然后在WebSecurityConfigurerAdapter的自定义实施中,在HttpSecurity
中添加上述自定义过滤器。
@Configuration
public class CustomWebSecurityConfigurerAdapter
extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.addFilterAfter(
new MyCountryCodeFilter(), BasicAuthenticationFilter.class);
}
}