RBAC权限控制管理

最近公司让做个权限管理模块

总结下来大概有三个方法:

一、RBAC 2.0 角色管理

二、使用shiro框架

三、JSP页面中写java代码

这里就重点记录一下第一种RBAC角色管理的方法

RBAC的重点就在于与角色的关联

首先也就是最重要的就是数据库的设计了

USERS表

CREATE TABLE `users`  (
  `id` int(64) NOT NULL AUTO_INCREMENT,
  `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `password` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `rid` int(64) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

MENU表

CREATE TABLE `menu`  (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `pid` int(10) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

ROLE表

CREATE TABLE `role`  (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

ROLE_MENU表

CREATE TABLE `role_menu`  (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `rid` int(10) NULL DEFAULT NULL,
  `mid` int(10) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

这是数据库的外连接,在数据库设计的时候不需要写出来,自己清楚就行,这样就提高了开发的便捷性,损失了安全性

其次是项目里Mapper..xml中SQL语句的书写

MenuMapper.xml中

<select id="selByRid" resultMap="mmap">
		select m.* ,#{rid} rid
		from Menu m join
		role_menu r on r.mid = m.id
		where r.rid = #{rid} and m.pid=#{pid}
	</select>

UserMapper.xml中

<select id="selByUser" resultType="users">
        select * from users where username = #{username} and password = #{password}
    </select>

最后就是其他代码的书写了,项目源码见

https://download.csdn.net/download/fungli_notlove/11823834

纯属个人记录,还请各位大佬不喜勿喷!

发布了25 篇原创文章 · 获赞 8 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/FungLi_notLove/article/details/101419928