编程随笔-SpringBoot | 24.基于自定义注解实现JWT身份校验

1.编写注解类JwtCheck.java

若对自定义注解不了解,可参考文章14.基于AOP实现自定义注解

image-20210901023233580

置于annotation包内。

2.编写切面类JwtCheckAspect.java

若对aop不太了解,可参考文章11.AOP面向切面编程

2.1.搭建整体架构

首先先在类代码上加上@Aspect和@Component注解

image-20210901023749715

其次,编写增强方法jwtCheckAdvice,将ProceedingJoinPoint和刚写的注解JwtCheck作为形式参数传入:

image-20210901024042756

最后,在增强方法代码上加上@Around注解,在括号内写@annotation表达式

image-20210901024233811

2.2.获取HttpServletRequest

上一篇文章提到,aop的增强方法中,是无法将HttpServletRequest作为形式参数传入的。而获取的方式是将其作为全局变量,并通过@Resource注解对其赋值

image-20210901024359189

2.3.编写增强方法

增强方法的内容,梳理下来,分为以下几点:

  • 获取请求头中的token
  • 解析token并判断是否有效
  • 判断有效后,将载荷中的数据存入HttpServletRequest
  • 放行

image-20210901024807193

对于上述代码的说明如下:

  • 第①步的headerName是一个未展示出来的全局变量,意为token存放在请求头时的名字。建议通过配置文件对其赋值(即使用@Value注解赋值),可参考文章:21.静态变量用@Value赋值
  • 第②步中的ResultConstant是我自定义的常量类,CustomException是我自定义的异常类。这里对于异常的处理,各位可以自由发挥

3.在需要权限校验的方法上加上@JwtCheck注解

一般情况下,除了登录和注册以外的接口,都需要进行权限校验

image-20210901025335959

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值