java 拦截器放行_Spring mvc 的拦截器怎么放行一些请求不进行拦截?

配置权限校验和登录校验,日志记录或其他操作,这些都用了Spring MVC的多个拦截器。

但是有一个问题,有一些请求是拦截器不能拦截的,不能进行拦截,否侧会出现异常和错误。比如受信任节点发来的请求,是不用进行权限校验和登录校验的。

拦截器有多个,不可能每一个都写放行判断代码,而且拦截不一定是基于path,可能也是基于请求头。即使是基于类似BaseInterceptor的方式,虽然节省了代码,可还是会执行重复的放行判断的java代码。

spring mvc 有没有一个中间件组件,可以在这里面判断请求是否可以进行拦截或不拦截直接放行?不用进入拦截器的流程?

回答

写个白名单数组进行过滤吧,比如下面这样

// 不需要拦截的请求,可以根据实际需求切换为请求头的某个参数值

private static final String[] whiteList = {"/oauth/token","/captchaImage"};

// 跳过不需要验证的路径

if (Arrays.asList(whiteList).contains(url)){

// 调用逻辑方法,处理业务

}else {

// 拦截器处理请求

}

有一个方法是写Around的切面,满足条件直接返回true,否则走正常流程

但是还是建议理清业务需求,考虑规范路径、特殊情况走特殊接口等操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值