如何创建servlet过滤器来授权请求​​?

时间:2018-03-15 19:33:30

标签: spring

如何创建spring servlet过滤器来授权请求​​。

需要在spring安全过滤器链中添加一个过滤器,如果需要更改每个请求,则会为每个请求更新用户提供一些细节(重新加载权限或任何内容)。

需要一些示例代码段来跟踪或理解。

提前致谢。

1 个答案:

答案 0 :(得分:1)

要添加自定义过滤器,您应该扩展org.springframework.web.filter.GenericFilterBean,如下所示:

public class MySecurityFilter extends GenericFilterBean {

    @Override
    public void doFilter(
      ServletRequest request, 
      ServletResponse response,
      FilterChain chain) throws IOException, ServletException {
        chain.doFilter(request, response);
    }
}

下一步是通过覆盖configure的{​​{1}}方法来实际注册过滤器:

WebSecurityConfigurerAdapter

如您所见,通过将过滤器添加到@Configuration public class CustomWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.addFilterAfter( new MySecurityFilter(), BasicAuthenticationFilter.class); } } 对象来添加过滤器。使用的方法是HttpSecurity,它基本上在第二个参数中提供的过滤器之后分配过滤器,在此示例中为addFilterAfter,因此您的过滤器将在此之后执行,春天安全的过滤器链。

<强>更新

请参阅this链接以个性化您的servlet授权。该方法为您提供了一个BasicAuthenticationFilter对象,通过该对象,您可以获取Authentication对象并执行其他检查。