开源权限框架 Shiro 整合 web 项目的数据库设计

2018-05-07 文章推荐 访问量 184

Apache Shiro 是功能强大并且容易集成的开源权限框架,它能够完成认证、授权、加密、会话管理等功能。认证和授权为权限控制的核心,简单来说,“认证”就是http://www.ddwclub.com/27e9/f1c6a536cf89.html证明你是谁!

Shiro 相关的教程有很多,但是网上大多数都是使用配置文件的形式进行dmeo样式,没有具体的结合数据库的例子。本系列文章将彻底的打破其他文章的一些规则,我们从数据库设计到整合 spring mvc,jdbc ,MyBatis等框架,完整的作出一套教程。希望大家喜欢!

本篇文章是这一系列教程文章的第一篇,我们先从数据库的设计开始实现。

用户表设计

DROP TABLE IF EXISTS `u_user`;
CREATE TABLE `u_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `nickname` varchar(20) DEFAULT NULL COMMENT '用户昵称',
  `email` varchar(128) DEFAULT NULL COMMENT '邮箱|登录帐号',
  `pswd` varchar(32) DEFAULT NULL COMMENT '密码',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `last_login_time` datetime DEFAULT NULL COMMENT '最后登http://www.ddwclub.com/7e29/1149c4cbd008.html录时间',
  `status` bigint(1) DEFAULT '1' COMMENT '1:有效,0:禁止登录',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT '用户表';

设计的比较简单,但是综合演示,已经够用。实际项目中自己在添加一些字段,视具体的需求而定。

角色表设计

DROP http://www.ddwclub.com/f5b1/420e98992789.htmlTABLE IF EXISTS `u_role`;
CREATE TABLE `u_role` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL COMMENT '角色名称',
  `type` varchar(10) DEFAULT NULL COMMENT '角色类型',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT '角色表';

这里面也添加了一个状态字段,用于在紧急情况下,禁止某一类用户做一些操作。这个功能常见于BAT公司中。例如国家发布一个正常,导致网盘非会员用户不能上传文件等。这个例子不是很恰当,但是实际的应用场景很是有的,不常见。

权限表设计

DROP TABLE IF EXISTS `u_permission`;
CREATE TABLE `u_permission` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `url` varchar(256) DEFAULT NULL COMMENT 'url地址',
 http://www.ddwclub.com/c022/cf9058cdf28f.html; `name` varchar(64) DEFAULT NULL COMMENT 'url描述',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8  COMMENT &http://www.ddwclub.com/f9e3/cdbc2e1dd2b9.html#039;url权限表';

这里可以细粒度到具体的按钮操作。

用户角色表设计

DROP TABLE IF EXISTS `u_user_role`;
CREATE TABLE `u_user_role` (
  `uid` bigint(20) DEFAULT NULL COMMENT '用户ID',
  `rid` bigint(20) DEFAULT NULL COMMENT '角色ID'
) ENGINE=InnoDB DEFAULT http://www.ddwclub.com/cb86/43913522c6fc.htmlCHARSET=utf8 COMMENT '角色权限表';

角色权限表设计

DROP TABLE IF EXISTS `u_role_permission`;
CREATE TABLE `u_role_permission` (
  `rid` bigint(20) DEFAULT NULL COMMENT '角色ID',
  `pid` bigint(20) DEFAULT NULL COMMENT '权限ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '角色权限表';

到这里,数据库我们就设计完成,再下一章我们将进行 Shirohttp://www.ddwclub.com/c193/c81cccba45cf.html http://www.ddwclub.com/7f1c/c12ee1af3b31.html教程的实战开发,框架搭建的阶段。

业余草公众号http://www.ddwclub.com/ed52/9b13053aa583.html

最后,欢迎关注我的个人微信公众号:业余草(yyhttp://www.ddwclub.com/80c4/69cf9a0dd918.htmlucao)!

本站是基于ThinkPHP3.2.3版本框架开发 Theme by WordPress 粤ICP备15112997号-1