一、任务:实现权限
任务A:实现POS系统权限功能。
基本需求及逻辑如下:
(1) 各小组根据技术能力自行定义系统访问控制需求、方案及实现。
任务B:按“课程设计文档模板”要求编写文档:
(1) 撰写文档4.4 权限设计 (架构师完成)
(2) 撰写文档4.1 用例实现设计(分析员、架构师、程序员、测试员)
二、要求:
(1)根据方案合理性和技术难度进行评价。使用访问控制框架(建议shiro)实现RBAC方案计满分。
三、制品交付:
(1) 程序提交的项目git。
(2) 文档发表在项目经理blog。
(3) 为方便指导老师评价程序,程序运行界面截图和测试报告发表在项目经理blog(另写一篇,测试员完成)。
交付时间:细化迭代5时间为2周(第11、12周),截止日期5月29日(第12周星期五) 24:00。
制品反馈见blog评论和git的issue。
附:为方便交流和分享,提供该阶段数据库表参考。各组可根据结合自己题目分析字段需求,修改和扩展表的字段。
RBAC方案参考表
-- ----------------------------
-- Table structure for `resource`
-- ----------------------------
DROP TABLE IF EXISTS `resource`;
CREATE TABLE `resource` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`RESOURCENO` varchar(36) NOT NULL,
`RESOURCENAME` varchar(36) NOT NULL,
`DESCRIPTION` varchar(100) DEFAULT NULL,
`SEQ` int(11) DEFAULT NULL,
`URL` varchar(100) DEFAULT NULL,
`RESOURCE_ID` int(11) DEFAULT NULL,
`RESOURCETYPE_ID` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `RESOURCE_ID` (`RESOURCE_ID`),
KEY `RESOURCETYPE_ID` (`RESOURCETYPE_ID`),
CONSTRAINT `resource_ibfk_1` FOREIGN KEY (`RESOURCE_ID`) REFERENCES `resource` (`ID`),
CONSTRAINT `resource_ibfk_2` FOREIGN KEY (`RESOURCETYPE_ID`) REFERENCES `resourcetype` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for `resourcetype`
-- ----------------------------
DROP TABLE IF EXISTS `resourcetype`;
CREATE TABLE `resourcetype` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`ROSOURCETYPENAME` varchar(36) NOT NULL,
`DESCRIPTION` varchar(100) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of resourcetype
-- ----------------------------
-- ----------------------------
-- Table structure for `role`
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`ROLENAME` varchar(36) NOT NULL,
`DESCRIPTION` varchar(100) DEFAULT NULL,
`SEQ` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for `role_resource`
-- ----------------------------
DROP TABLE IF EXISTS `role_resource`;
CREATE TABLE `role_resource` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`ROLE_ID` int(11) NOT NULL,
`RESOURCE_ID` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `ROLE_ID` (`ROLE_ID`),
KEY `RESOURCE_ID` (`RESOURCE_ID`),
CONSTRAINT `role_resource_ibfk_2` FOREIGN KEY (`RESOURCE_ID`) REFERENCES `resource` (`ID`),
CONSTRAINT `role_resource_ibfk_1` FOREIGN KEY (`ROLE_ID`) REFERENCES `role` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`USERNO` varchar(36) NOT NULL,
`PASSWORD` varchar(36) NOT NULL,
`USERNAME` varchar(36) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for `user_role`
-- ----------------------------
DROP TABLE IF EXISTS `user_role`;
CREATE TABLE `user_role` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`USER_ID` int(11) NOT NULL,
`ROLE_ID` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `USER_ID` (`USER_ID`),
KEY `ROLE_ID` (`ROLE_ID`),
CONSTRAINT `user_role_ibfk_2` FOREIGN KEY (`ROLE_ID`) REFERENCES `role` (`ID`),
CONSTRAINT `user_role_ibfk_1` FOREIGN KEY (`USER_ID`) REFERENCES `user` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;