通过注解在方法级别上使用拦截器做登录权限校验

背景:项目中发现很多方法中都需要做登录权限校验,而既存的解决方式是在每个方法里面都调用公共的校验方法,虽然说不影响使用,但是总想把重复的劳动给干掉,通过另一个方式简化.

想法:通过spring mvc拦截器+自定义注解的组合方式.拦截器中写校验代码,注解用来定位需要校验的方法.


1、定义注解类AccessToken

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 校验token tag
 * @author xxx
 *
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface AccessToken {

}

2、写个拦截器类


public class MobileTokenInterceptor extends HandlerInterceptorAdapter {

@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
boolean flag = false;
if(handler instanceof HandlerMethod){
HandlerMethod hm = (HandlerMethod)handler;
Method method = hm.getMethod();
// 如果有AccessToken,需要鉴权
if(method.isAnnotationPresent(AccessToken.class)){
// 校验逻辑

flag = checkUser();

}
}


if(!flag){
// TODO 返回提示信息
}

return flag;
}
}

3、修改配置文件,增加以下代码

<mvc:interceptors>

   <mvc:interceptor>
<mvc:mapping path="/mobile/**" />
<bean class="com.xxxx.xxxx.interceptor.MobileTokenInterceptor" />
  </mvc:interceptor> 

</mvc:interceptors>

4、在需要使用校验的方法上加AccessToken注解


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值