如何创建spring servlet过滤器来授权请求。
需要在spring安全过滤器链中添加一个过滤器,如果需要更改每个请求,则会为每个请求更新用户提供一些细节(重新加载权限或任何内容)。
需要一些示例代码段来跟踪或理解。
提前致谢。
答案 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
对象并执行其他检查。