Java权限管理

项目地址

关于权限

  • 权利与限制
  • 正确的形使权利
  • 在限制的范围内形使权利

RBAC

  • 基于角色的访问控制(Role - Based Access Control)
  • 权限与角色关联
  • 用户与角色关联

权限“戏”分

  • 简单型 —— 单一用户名密码限制
  • 经济型 —— 用户与菜单关联
  • 富裕型 —— 用户与菜单及功能关联
  • 豪华型 —— 用户-角色-菜单及功能
  • 豪华组合型 —— 集中权限认证sso

程序设计-技术选择

  • EasyUI1.3.2
  • SpringMVC, FreeMarker
  • Spring
  • SpirngJDBC
  • MySQL

权限设计与实现

  • 数据库设计
    这里写图片描述
    这里写图片描述
  • 程序设计
    这里写图片描述
    这里写图片描述
  • 权限接口设计
  • 代码实现

权限与应用程序

  • 应用URL实现程序权限控制
    • 实现方式
      • 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;
  • -
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值