项目地址
关于权限
RBAC
- 基于角色的访问控制(Role - Based Access Control)
- 权限与角色关联
- 用户与角色关联
权限“戏”分
- 简单型 —— 单一用户名密码限制
- 经济型 —— 用户与菜单关联
- 富裕型 —— 用户与菜单及功能关联
- 豪华型 —— 用户-角色-菜单及功能
- 豪华组合型 —— 集中权限认证sso
程序设计-技术选择
- EasyUI1.3.2
- SpringMVC, FreeMarker
- Spring
- SpirngJDBC
- MySQL
权限设计与实现
权限与应用程序
- 应用URL实现程序权限控制
- 实现方式
- 应用范围
- Web应用(如各种管理系统)
- Rest接口(一种基于http协议,使用get、putdelete、post方法进行数据交互的结构规范),URL中都是名词,用于获取资源
- 应用Code实现程序权限控制
- 实现方式
- 应用范围
- Web应用(如各种管理系统)
- Rest接口
- 非Rest接口(RMI、Socket)
- Web服务(WebService接口)
实现
CREATE DATABASE based_access_control;
USE based_access_control;
DROP TABLE IF EXISTS auth_user;
CREATE TABLE auth_user (
id BIGINT(20) AUTO_INCREMENT NOT NULL,
NAME VARCHAR(64) NOT NULL,
pwd VARCHAR(64) NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS auth_role;
CREATE TABLE auth_role (
id BIGINT(20) AUTO_INCREMENT NOT NULL,
NAME VARCHAR(64) NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS auth_function;
CREATE TABLE auth_function (
id BIGINT(20) AUTO_INCREMENT NOT NULL,
NAME VARCHAR(64) NOT NULL,
parent_id BIGINT(20) NOT NULL,
url VARCHAR(128) NOT NULL,
serial_num INT NOT NULL,
accordion INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS auth_role_function;
CREATE TABLE auth_role_function (
id BIGINT(20) AUTO_INCREMENT NOT NULL,
role_id BIGINT(20) NOT NULL,
function_id BIGINT(20) NOT NULL,
STATUS INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS auth_user_role;
CREATE TABLE auth_user_role (
id BIGINT(20) AUTO_INCREMENT NOT NULL,
role_id BIGINT(20) NOT NULL,
user_id BIGINT(20) NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;