网上翻了好久 都没有SpringBoot+Shiro的入门教程 原本想看《跟我学Shiro》
然后发现这是从头开始 但是我就需要和SpringBoot整一块 不需要那么多的东西 感觉这个当参考书不错
于是东拼西凑终于整成了 把别人的教程上我用不到的都删了 该改的改 终于拿到了我理想中的效果
先是数据库部分 因为是简单的实现 就没有弄得太复杂
三部分 用户 -- 角色 -- 权限
四张表
用户和角色是多对一的关系(多对多懒得弄...)
角色和权限是多对多的关系(这个没啥好说的)
直接放代码了 那个url忽略就好了 完全没用上 我打算弄菜单的自动获取能访问的列表 这样就不用写死了
DROP TABLE IF EXISTStb_user;CREATE TABLEtb_user (
`id`INT PRIMARY KEY NOT NULLAUTO_INCREMENT,
`username`VARCHAR(50) NOT NULL UNIQUE KEY,
`password`VARCHAR(255) NOT NULL,
`role_id`INT NOT NULL,
`create_time`DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time`DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP);DROP TABLE IF EXISTStb_role;CREATE TABLEtb_role (
`id`INT PRIMARY KEY NOT NULLAUTO_INCREMENT,
`name`VARCHAR(50) NOT NULL UNIQUE KEY,
`desc` VARCHAR(50) NOT NULL,
`create_time`DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time`DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP);DROP TABLE IF EXISTStb_permission;CREATE TABLEtb_permission (
`id`INT PRIMARY KEY NOT NULLAUTO_INCREMENT,
`parent_id`INT,
`name`VARCHAR(50) NOT NULL UNIQUE KEY,
`desc` VARCHAR(50) NOT NULL,
`url`VARCHAR(255) NOT NULL DEFAULT '#',
`order_by`INT,
`type`INT NOT NULL DEFAULT 0,
`create_time`DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time`DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP);DROP TABLE IF EXISTStb_role_permission;CREATE TABLEtb_role_permission (
`id`INT PRIMARY KEY NOT NULLAUTO_INCREMENT,
`role_id`INT NOT NULL,
`permission_id`INT NOT NULL,
`create_time`DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time`DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP);INSERT INTO tb_permission (`id`, `name`, `desc`, url, `order_by`, `type`)VALUES ('1', 'user:*', '用户管理', '/getAll', '1', '1');INSERT INTO tb_permission (`id`, `name`, `desc`, url, `order_by`, `type`)VALUES ('2', 'user:query', '查询用户', '#', '1', '1');INSERT INTO tb_permission (`id`, `name`, `desc`, url, `order_by`, `type`)VALUES ('3', 'user:insert', '新增用户', '#', '1', '1');INSERT INTO tb_permission (`id`, `name`, `desc`, url, `order_by`, `type`)VALUES ('4', 'user:update', '修改用户', '#', '1', '1');INSERT INTO tb_permission (`id`, `name`, `desc`, url, `order_by`, `type`)VALUES ('5', 'user:delete', '删除用户', '#'