张一明架构师前置知识- Chapter 13
权限管理
RBAC
基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。


permission 权限
异步JSON提交表单
js:
1 | function add(){ |
controller:
1 | @RequestMapping("permissionAdd") |
复选框
1 | <input type="checkbox" name="r" th:checked="${p}==null?'':${p.r } " value="true">查看 |
表设计
多对多
SELECT r.id, r.name,p.name,p.uri FROM role r inner join role_permission m on r.id = m.role_id inner join permission p on m.permission_id = p.id;
Inner Join 交集部分
LEFT OUTER JOIN
RIGHT OUTER JOIN
一方全部
踢下线 单用户登录
表单校验
实体注解:
controller
@Valid @RequestBody Permission p,BindingResult bindingResult
@NotBlank:判断字符创是否是null或者是空串(去掉首尾空格)。
@NotEmpty判断字符串是否为null会者是空串。
@Length判断字符的长度(最大或最小)
@Min判断数值最小值
@Max判断数值最大值
@Email判断邮箱是否合法
@Null 限制只能为null @NotNull 限制必须不为null @AssertFalse 限制必须为false @AssertTrue 限制必须为true @DecimalMax(value) 限制必须为一个不大于指定值的数字 @DecimalMin(value) 限制必须为一个不小于指定值的数字 @Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction @Max(value) 限制必须为一个不大于指定值的数字 @Min(value) 限制必须为一个不小于指定值的数字 @Future 限制必须是一个将来的日期 @Past 限制必须是一个过去的日期 @Pattern(value) 限制必须符合指定的正则表达式 @Size(max,min) 限制字符长度必须在min到max之间 @NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) @NotBlank 验证注解的元素值不为空(不为null、去除首尾空格后长度不为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 @Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式
文件上传
代码生成
MockMvc
本文为本人整理的听课笔记, 稍有修改.
自学之用, 不作任何商业用途.如有侵权, 请联系删除
原文引用于如下原创内容 :