这几天粗浅的把shiro整合到spring中,并且注解控制shiro用户/角色/权限And/OR
步骤:
1.首先maven搭建web项目
2.创建数据库 user/role/authority 其中,role->user是一对多,role->authority是多对多
shiros.sql内容:
1 /* 2 SQLyog Ultimate v11.24 (32 bit) 3 MySQL - 5.5.41 : Database - shiros 4 ********************************************************************* 5 */ 6 7 8 /*!40101 SET NAMES utf8 */; 9 10 /*!40101 SET SQL_MODE=''*/; 11 12 /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; 13 /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; 14 /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 15 /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; 16 CREATE DATABASE /*!32312 IF NOT EXISTS*/`shiros` /*!40100 DEFAULT CHARACTER SET utf8 */; 17 18 USE `shiros`; 19 20 /*Table structure for table `authority` */ 21 22 DROP TABLE IF EXISTS `authority`; 23 24 CREATE TABLE `authority` ( 25 `authorityId` varchar(36) NOT NULL, 26 `authorityName` varchar(20) DEFAULT NULL, 27 `authorityContent` varchar(500) DEFAULT NULL, 28 PRIMARY KEY (`authorityId`) 29 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 30 31 /*Data for the table `authority` */ 32 33 insert into `authority`(`authorityId`,`authorityName`,`authorityContent`) values ('97e2a86d-802c-415f-8d2e-6d94a3390001','疾病:增加',NULL),('97e2a86d-802c-415f-8d2e-6d94a3390002','疾病:删除',NULL),('97e2a86d-802c-415f-8d2e-6d94a3390003','疾病:修改',NULL),('97e2a86d-802c-415f-8d2e-6d94a3390004','疾病:查看',NULL),('97e2a86d-802c-415f-8d2e-6d94a3390005','产品:增加',NULL),('97e2a86d-802c-415f-8d2e-6d94a3390006','产品:删除',NULL),('97e2a86d-802c-415f-8d2e-6d94a3390007','产品:修改',NULL),('97e2a86d-802c-415f-8d2e-6d94a3390008','产品:查看',NULL); 34 35 /*Table structure for table `role` */ 36 37 DROP TABLE IF EXISTS `role`; 38 39 CREATE TABLE `role` ( 40 `roleId` varchar(36) NOT NULL, 41 `roleName` varchar(36) DEFAULT NULL, 42 `roleGrade` int(11) DEFAULT NULL, 43 PRIMARY KEY (`roleId`) 44 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 45 46 /*Data for the table `role` */ 47 48 insert into `role`(`roleId`,`roleName`,`roleGrade`) values ('97e2a86d-802c-415f-8d2e-6d94a3390121','管理员3',1),('97e2a86d-802c-415f-8d2e-6d94a3390122','管理员2',1),('97e2a86d-802c-415f-8d2e-6d94a3390123','管理员1',1); 49 50 /*Table structure for table `roleauthority` */ 51 52 DROP TABLE IF EXISTS `roleauthority`; 53 54 CREATE TABLE `roleauthority` ( 55 `roleId` varchar(36) NOT NULL, 56 `authorityId` varchar(36) NOT NULL, 57 PRIMARY KEY (`roleId`,`authorityId`), 58 KEY `FK_Relationship_3` (`authorityId`), 59 CONSTRAINT `FK_Relationship_2` FOREIGN KEY (`roleId`) REFERENCES `role` (`roleId`), 60 CONSTRAINT `FK_Relationship_3` FOREIGN KEY (`authorityId`) REFERENCES `authority` (`authorityId`) 61 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 62 63 /*Data for the table `roleauthority` */ 64 65 insert into `roleauthority`(`roleId`,`authorityId`) values ('97e2a86d-802c-415f-8d2e-6d94a3390123','97e2a86d-802c-415f-8d2e-6d94a3390001'),('97e2a86d-802c-415f-8d2e-6d94a3390123','97e2a86d-802c-415f-8d2e-6d94a3390002'),('97e2a86d-802c-415f-8d2e-6d94a3390123','97e2a86d-802c-415f-8d2e-6d94a3390003'),('97e2a86d-802c-415f-8d2e-6d94a3390123','97e2a86d-802c-415f-8d2e-6d94a3390004'),('97e2a86d-802c-415f-8d2e-6d94a3390122','97e2a86d-802c-415f-8d2e-6d94a3390005'),('97e2a86d-802c-415f-8d2e-6d94a3390122','97e2a86d-802c-415f-8d2e-6d94a3390006'); 66 67 /*Table structure for table `user` */ 68 69 DROP TABLE IF EXISTS `user`; 70 71 CREATE TABLE `user` ( 72 `userId` varchar(36) NOT NULL, 73 `roleId` varchar(36) NOT NULL, 74 `userName` varchar(20) DEFAULT NULL, 75 `password` varchar(20) DEFAULT NULL, 76 PRIMARY KEY (`userId`), 77 KEY `FK_Relationship_1` (`roleId`), 78 CONSTRAINT `FK_Relationship_1` FOREIGN KEY (`roleId`) REFERENCES `role` (`roleId`) 79 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 80 81 /*Data for the table `user` */ 82 83 insert into `user`(`userId`,`roleId`,`userName`,`password`) values ('97e2a86d-802c-415f-8d2e-6d94a3390110','97e2a86d-802c-415f-8d2e-6d94a3390122','李四','123456'),('97e2a86d-802c-415f-8d2e-6d94a3390111','97e2a86d-802c-415f-8d2e-6d94a3390123','张三','123456'),('97e2a86d-802c-415f-8d2e-6d94a3390112','97e2a86d-802c-415f-8d2e-6d94a3390121','王五','123456'); 84 85 /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; 86 /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; 87 /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; 88 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;