前后端分离的项目,采用ssm后端接口权限校验

本文介绍了在前后端分离的项目中,如何利用JWT进行权限校验。通过Spring AOP创建一个切面,对每个请求进行权限验证。JWT令牌通过请求头的Authorization传递,解析后存储在请求的session中。当权限不足时,返回统一的错误信息。权限检查涉及的数据库设计遵循3NF,通过查询特定表来确定用户是否有权限访问特定接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前后端分离的项目中,服务端对于每个请求都是一模一样的,对于每个用户的请求识别就需要用到一个统一的方式(jwt),然后在访问每个接口的时候先对这个jwt进行识别,查出这个用户的权限级别,检查是否拥有访问这个接口的权限,如果没有,那么将直接返回一个错误信息,表示权限不足,反之放过,继续往下执行。

jwt就是一个包含用户信息的加密字符串:参考:JWT的生成及验证过程

因为对于每个接口都需要进行权限校验,那么采用spring的aop最好不过了。设置每个controller都需要经过的aop切面,在切面中获取出controller中的HttpServletRequest,这个request知道了就可以获取出访问的所有headers之类的参数了。接下来就进行权限验证。

面向对象的特点之一就是继承,所以在项目中controller都需要继承一个BaseController,这样的好处之一是在controller层中可以复用一些BaseController的方法,比如获取远端ip地址、获取用户权限等常用函数。好处之二就是在权限校验切面中调用BaseController controller = (BaseController) joinPoint.getTarget();这个方法的时候可以统一转成一个对象。

BaseController一般是这样的:

public class BaseController {
  private static final Logger log = Logger.getLogger(BaseController.class);
  protected static final ThreadLocal<HttpServletRequest> requests = new ThreadLocal();
  protected st
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值