> 文档中心 > springboot+aop+自定义注解实现token校验

springboot+aop+自定义注解实现token校验

1.在 pom.xml 中引入响应的依赖模块;

org.springframework.boot    spring-boot-starter-aop

2.新建一个自定义注解类,加了这个注解的方法就表示切入点,即目标方法;

import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface CheckToken {}

3.定义切面

@Aspect@Componentpublic class CheckTokenAspect {// Service层切点,加了@CheckUserToken这个注解的方法都是切入点  @Pointcut("@annotation(com.common.util.annotation.CheckToken)")public void servicePointcut() {}      // 切点方法执行前运行    @Before(value = "servicePointcut()")    public void doBefore(JoinPoint joinPoint) {      //1.获取token      ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();      HttpServletRequest request = attributes.getRequest();      String token=request.getHeader("Authorization");      //判断token      if(StringUtils.isNotBlank(token)){ //解析token,这里没有写token解析的具体方法}else{ throw new RuntimeException("token 不能为空!");      }    }}