關於使用註解設置token免攔截 和 必要 的權限攔截

先說一下這樣子作的原理:將某一個註解配置在方法頭部,在spring實例化的時候會將註解以切面的形式注入給方法,在攔截的地方判斷當前方法有沒有注入指定的註解類。spring

1.先聲明一個註解類(類中不須要作任何邏輯操做)ide

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


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

2.在你的token攔截類中作一個判斷設spa

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就能夠了!code

相關文章
相關標籤/搜索