在spring boot 配置servlet filter 逻辑上与配置spring 是一样的。 不过相比spring 更加简化配置的难度。 这里只需要两步
1 创建一个自定义顾虑器并继承spring filter 例如OncePerRequestFilter
public class AuthenticationFilter extends OncePerRequestFilter{
private final Logger logger=LoggerFactory.getLogger(this.getClass());
@Override
protected void doFilterInternal(HttpServletRequest req, HttpServletResponse resp, FilterChain chain)
throws ServletException, IOException {
//code for filtering
chain.doFilter(req, resp);
}
}
注: 这里我使用的是OncePerRequestFilter,目的是为了保证每次request 只触发一次filter
2 在spring boot配置filter。 相当于在web.xml 配置<filter></filter> 和filter mapping url pattern
@Configuration
public class StarsFilterConfiguration {
/*FilterRegistrationBean 用来配置urlpattern 来确定哪些路径触发filter */
@Bean
public FilterRegistrationBean someFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(AuthFilter());
registration.addUrlPatterns("/api/rest/*");
registration.setOrder(1);
return registration;
}
/*使用annotation tag来取代<bean></bean>*/
@Bean()
public Filter AuthFilter() {
return new AuthenticationFilter();
}
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。