温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

在Spring boot 配置过滤器(filter)

发布时间:2020-07-22 20:26:13 来源:网络 阅读:2190 作者:vjjy001 栏目:开发技术

在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();
	  }
}


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI