java注解配置filter,五十二、SpringBoot配置Filter以及注解配置CAS客户端过滤器

spring boot 配置Filter过滤器

参考:

CAS单点登录详解

CAS单点登录疑问解答

Filter过滤器,Interceptor拦截器,ControllerAdvice,Aspect切片

1、通过 @WebFilter 注解来配置

写法一:

@Component

@WebFilter(urlPatterns = "/webapi/*", filterName = "authFilter")

public class AuthFilter implements Filter {

......

}

适用自定义过滤器。

写法二:

@Order(value = 0)

@WebFilter(filterName = "CAS Authentication Filter", urlPatterns = "/*", initParams = {

@WebInitParam(name = "casServerLoginUrl", value = "https://cas.xxxx.cn/login"),

@WebInitParam(name = "serverName", value = "http://app.yyy.com")

})

//自定义一个继承CAS过滤器的过滤器,不用具体实现也可以生效

public class CasAuthenticationFilter extends AuthenticationFilter {

}

适用第三方过滤器,比如客户端的CAS过滤器。

2、通过 @Bean 注解来配置

我这个是写在带 @SpringBootApplication 注解的类里面的。

@Bean

public FilterRegistrationBean testFilterRegistration() {

FilterRegistrationBean registration = new FilterRegistrationBean(new TestFilter());

registration.addUrlPatterns("/webapi/*"); //

registration.addInitParameter("paramName", "paramValue"); //

registration.setName("testFilter");

return registration;

}

那如果有多个过虑器,怎么指定执行的顺序呢?

通过 registration.setOrder(1);  来设置,例如:

@Bean

public FilterRegistrationBean testFilterRegistration() {

FilterRegistrationBean registration = new FilterRegistrationBean(new TestFilter());

registration.addUrlPatterns("/webapi/*"); //

registration.addInitParameter("paramName", "paramValue"); //

registration.setName("testFilter");

registration.setOrder(1);

return registration;

}

@Bean

public FilterRegistrationBean authFilterRegistration() {

FilterRegistrationBean registration = new FilterRegistrationBean(new AuthFilter());

registration.addUrlPatterns("/webapi/*"); //

registration.addInitParameter("paramName", "paramValue"); //

registration.setName("authFilter");

registration.setOrder(2);

return registration;

}

注意:

1、如果指定了 Order 属性,执行的顺序与注册的顺序是无关的;

2、数字越小,优先级越高;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值