当前位置: 首页 > news >正文

springboot项目之AOP角色权限的判断

引言

      开发的项目中,可能遇到不同的角色,不同的角色有不通的权限定义。AOP切面是个很好的解决方案。

实践

1. 定义MerchRoles 


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

2. 定义切点

public class MerchAop {@Autowiredprivate DtoMerchGroupMapper merchGroupMapper;@Pointcut("@annotation(com.ruoyi.shop.api.aop.MerchRoles)")private void permissionCheck() {}@Around("permissionCheck()")public Object around(ProceedingJoinPoint p) throws Throwable{WxLoginUser user=(WxLoginUser) getAuthentication().getPrincipal();//建议采用redis缓存方案,更好if(BooleanUtil.isFalse(getUserPermissions(user))){return AjaxResult.warn("无权访问");}Map<String, Object> response = (Map<String, Object>) p.proceed();return response;}private Boolean getUserPermissions(WxLoginUser user) {//建议采用redis缓存方案,更好MPJLambdaWrapper<MerchGroupDto> wrapper = new MPJLambdaWrapper<MerchGroupDto>().selectAll(MerchGroupDto.class).eq(MerchGroupDto::getMemberId, user.getUserId());List<MerchGroupDto> list1=merchGroupMapper.selectJoinList(MerchGroupDto.class, wrapper);if(CollUtil.size(list1)>0){return true;}return false;}}

3. controller控制器,就使用吧。

http://www.lryc.cn/news/283496.html

相关文章:

  • Twincat PLC 跳出循环
  • 【Leetcode】277.搜寻名人
  • 小白数学建模 Mathtype 7.7傻瓜式下载安装嵌入Word/WPS以及深度使用教程
  • Linux之which和find
  • MySQL 常规操作指南
  • Rocketmq rust版本-开篇
  • springboot3+springsecurity6集成druid启动报错
  • golang面试题大全
  • Google 在裁员的路上一路狂奔
  • 橘子学K8S04之重新认识Docker容器
  • Day31- 贪心算法part05
  • 基于springboot+vue的蜗牛兼职网的设计与实现系统(前后端分离)
  • 【音视频原理】图像相关概念 ② ( 帧率 | 常见帧率标准 | 码率 | 码率单位 )
  • CSS Position总结:定位属性的实战技巧
  • python基础系列二-函数
  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用短曝光功能(C#)
  • 提升开发效率,Fiddler Everywhere for Mac助您解决网络调试难题
  • JVM工作原理与实战(十九):运行时数据区-方法区
  • webassembly003 whisper.cpp的项目结构CMakeLists.txt
  • 克魔助手工具详解、数据包抓取分析、使用教程
  • 【Docker】contos7安装 Nacos容器部署单个部署集群
  • UML-通信图和交互概览图(通信图和顺序图的区别与联系)
  • Linux 使用PS命令掌握进程管理
  • Debian 10.13.0 安装图解
  • SQLite 3.45.0 发布!
  • MongoDB聚合:$set
  • 《Python数据分析技术栈》第01章 02 Jupyter入门(Getting started with Jupyter notebooks)
  • 【征服redis5】redis的Redisson客户端
  • React16源码: React中的beginWork的源码实现
  • 5-微信小程序语法参考