
实现自己的权限管理系统
Lin_Dong_Tian
不积跬步,无以至千里!
展开
-
实现自己的权限管理系统(一):确定目标
一、为什么要自己写?市面上已经有比较完善的安全框架,例如spring security和shiro,但是我要自己实现一套全新管理系统,满足更细致的管理。二、基本目标1、基于扩展的RBAC实现。2、易于扩展,能灵活适应需求的变化。3、所有管理都有界面方便操作。三、开发内容1、配置管理类功能用户、权限,角色的管理界面(扩展:部门,权限模块) 角色-用户管理,角色-权限...原创 2019-09-05 10:25:39 · 564 阅读 · 0 评论 -
实现自己的权限管理系统(十三):redis做缓存
一、自定义KEY@Getterpublic enum CacheKeyConstants { SYSTEM_ACLS, USER_ACLS;}二、实现1、首先生成key2、拿到连接池3、调用redis的方法public class SysCacheService { @Resource(name = "redisPool") ...原创 2019-09-12 11:15:37 · 1295 阅读 · 0 评论 -
实现自己的权限管理系统(十二):权限操作记录
一、定义参数因为权限操作类型比较多,可以设置根据操作类型来显示记录public class SearchLogParam { //根据类型来搜索:用户,部门,权限... private Integer type; // LogType //更新前片段 private String beforeSeg; //更新后片段 private Str...原创 2019-09-12 11:03:30 · 716 阅读 · 2 评论 -
实现自己的权限管理系统(十一):角色用户模块、角色权限模块、权限过滤
前面弄了那么多,都是单独的模块。现在我们需要把用户和权限通过角色关联起来。一、角色权限模块1、角色的权限列表更新操作public void changeRoleAcls(int roleId, List<Integer> aclIdList) { //取出当前角色已分配的权限ID List<Integer> originAclI...原创 2019-09-12 10:49:48 · 4796 阅读 · 0 评论 -
实现自己的权限管理系统(十):角色模块
一、参数校验public class RoleParam { private Integer id; @NotBlank(message = "角色名称不可以为空") @Length(min = 2, max = 20, message = "角色名称长度需要在2-20个字之间") private String name; @Min(value ...原创 2019-09-12 10:24:30 · 603 阅读 · 0 评论 -
实现自己的权限管理系统(九):权限点开发
有了权限模块,接下来就是开发权限模块下的权限点。一、参数校验@Getter@Setter@ToStringpublic class AclParam { private Integer id; @NotBlank(message = "权限点名称不可以为空") @Length(min = 2, max = 20, message = "权限点名称长度需要...原创 2019-09-12 10:17:21 · 320 阅读 · 0 评论 -
实现自己的权限管理系统(八):权限模块开发
有了部门模块、部门下面用户模块,接下来就是权限模块的开发。一、参数校验对模块名称、排序、状态、备注做校验,并指定默认的父id为0public class AclModuleParam { private Integer id; @NotBlank(message = "权限模块名称不可以为空") @Length(min = 2, max = 20, mes...原创 2019-09-12 09:43:09 · 935 阅读 · 0 评论 -
实现自己的权限管理系统(七):用户模块开发
1、参数校验public class UserParam { private Integer id; @NotBlank(message = "用户名不可以为空") @Length(min = 1, max = 20, message = "用户名长度需要在20个字以内") private String username; @NotBlank(m...原创 2019-09-06 10:46:00 · 656 阅读 · 1 评论 -
实现自己的权限管理系统(六):部门模块开发
开发:首先我们遵从MVC模式部门模块开发:1、利用validator进行参数校验public class DeptParam { private Integer id; @NotBlank(message = "部门名称不可以为空") @Length(max = 15, min = 2, message = "部门名称长度需要在2-15个字之间") ...原创 2019-09-06 10:29:07 · 867 阅读 · 0 评论 -
实现自己的权限管理系统(五):辅助工具
一、参数校验工具Validator借鉴简书:https://www.jianshu.com/p/0bfe2318814f1. Hibernate Validator 简介平时项目中,难免需要对参数 进行一些参数正确性的校验,这些校验出现在业务代码中,让我们的业务代码显得臃肿,而且,频繁的编写这类参数校验代码很无聊。鉴于此,觉得 Hibernate Validator 框架刚好解决了这些...原创 2019-09-05 14:53:52 · 252 阅读 · 0 评论 -
实现自己的权限管理系统(四): 异常处理
一、定义请求url规范,方便我们做异常处理这里我们要求项目中所有请求json数据,都使用.json结尾,页面请求都以.page结尾二、定义一个Json数据处理类JsonData作用:返回不同情况请求状态的信息:请求成功信息,请求失败信息package com.mmall.common;import lombok.Getter;import lombok.Setter;i...原创 2019-09-05 14:19:32 · 489 阅读 · 0 评论 -
实现自己的权限管理系统(三):数据库设计和逆向工程的生成
一、表格设计规范 二、详细表格设计 三、建表的SQL语句DROP TABLE IF EXISTS `sys_dept`;CREATE TABLE `sys_dept` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '部门id', `...原创 2019-09-05 11:15:33 · 301 阅读 · 0 评论 -
实现自己的权限管理系统(二):环境配置以及遇到的坑
开发环境:Maven + MyBatis + Spring + SpringMVC数据库:mysql 8web容器:tomcat 9数据源:druid1、web.xml配置2、applicationContext.xml配置3、SpringMVC配置:注意位置4、配置mybatis5、其他配置信息:数据库配置,redis配置,日志配置踩坑:1、mybatis...原创 2019-09-05 10:58:44 · 280 阅读 · 0 评论 -
实现自己的权限管理系统(十四):工具类
1、CollectionUtils:对集合的操作:交并补差,是否为空:union(),intersection();disjunction(); subtract(),isEmpty(); https://blog.youkuaiyun.com/gaozhlzh/article/details/69148592、JDK 1.8新特性 (1)Lambda表达式 (2)...原创 2019-09-12 16:27:58 · 223 阅读 · 0 评论