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

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

前后端分离的项目中,服务端对于每个请求都是一模一样的,对于每个用户的请求识别就需要用到一个统一的方式(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
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM(Spring+SpringMVC+MyBatis)是一种常用的Java后端开发框架,而Vue是一种流行的前端开发框架。将它们结合起来进行前后端分离开发可以提高开发效率和代码的可维护性。 在SSM Vue前后端分离项目中,后端使用SSM框架进行开发,前端使用Vue框架进行开发。前后端通过API接口进行数据交互。 下面是一个简单的SSM Vue前后端分离项目的示例: 1. 后端开发: - 使用Spring框架进行依赖注入和事务管理。 - 使用SpringMVC框架处理HTTP请求和响应。 - 使用MyBatis框架进行数据库操作。 - 设计并实现RESTful API接口,提供数据的增删改查功能。 2. 前端开发: - 使用Vue框架进行组件化开发。 - 使用Vue Router进行路由管理,实现页面跳转和导航。 - 使用Vuex进行状态管理,实现数据共享和响应式更新。 - 使用Axios库发送HTTP请求,与后端API进行数据交互。 - 使用Element UI或其他UI库进行页面布局和样式设计。 3. 前后端交互: - 前端通过Axios库发送HTTP请求到后端API接口,获取数据或提交数据。 - 后端接收请求,处理业务逻辑,访问数据库进行数据操作。 - 后端将处理结果返回给前端,前端根据结果进行相应的展示或处理。 这样的前后端分离项目可以提高开发效率和团队协作能力,前后端可以独立开发和测试,减少了耦合性,同时也方便进行项目的扩展和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值