关于使用注解设置token免拦截 和 必要 的权限拦截

先说一下这样子做的原理:将某一个注解配置在方法头部,在spring实例化的时候会将注解以切面的形式注入给方法,在拦截的地方判断当前方法有没有注入指定的注解类。

1.先声明一个注解类(类中不需要做任何逻辑操作)

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TokenNotValidation{
}


@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Token{
}
 

2.在你的token拦截类中做一个判断设

public class intercept extends HandlerInterceptorAdapter {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
TokenNotValidation annotation
= ((HandlerMethod) handler).getMethodAnnotation(TokenNotValidation.class); Token token = ((HandlerMethod) handler).getMethodAnnotation(Token.class); // 如果有@TokenNotValidation ,则不验证token if (annotation != null) { return true; } // 或者需要做权限认真,就认证 if (annotation != null) { //开始权限的逻辑判断............. return true; } } }

3.最后在你不需要拦截的方法头部加一个@TokenNotValidation,或者在需要认证的地方加@Token就可以了!

原文地址:https://www.cnblogs.com/mh-study/p/11540973.html