DAY12-14-RBAC

作者: 建国同学 | 来源:发表于2020-05-14 12:53 被阅读0次

一、Bootstrap前端框架

  • 由动态 CSS 语言 Less 写成。(重点是响应式,能适应各种各种设备)
  • 文档网址https://v3.bootcss.com/

使用

    1. 项目中添加 Bootstrap文件目录,粘贴相关的文件
    1. html页面引入相关的样式和 JS
<link rel="stylesheet" href="/js/bootstrap/css/bootstrap.css">
<script src="/js/jquery/jquery.min.js"></script>
<script src="/js/bootstrap/js/bootstrap.js"></script>

二、 RBAC权限管理系统

权限管理系统

  • 权限管理:
    一般指根据系统设置的安全规则或者安全策略,限制用户可以访问而且只能访问自己被授权的资源,从而保障数据资源在合法范围内得以有效使用和管理。
  • 权限管理几乎出现在任何系统里面,只要有用户和密码的系统
  • 基于角色访问控制(RBAC: Role Based Access Control)[使用最多]


RBAC

RBAC重要对象

  • 用户(User):角色施加的主体;用户通过拥有某个或多个角色以得到对应的权限。
  • 角色(Role):表示一组权限的集合。
  • 权限(Permission):用于限定能够访问的一个资源。


环境搭建

         <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.6</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>

分页插件

<script src="/js/jquery/jquery.min.js"></script>
<script src="/js/bootstrap/js/bootstrap.js"></script>
<script src="/js/plugins/twbsPagination/jquery.twbsPagination.min.js"></script>

<input type="hidden" name="currentPage" id="currentPage" value="1">       

<div style="text-align: center;">
    <ul id="pagination" class="pagination"></ul>
</div>



$("#pagination").twbsPagination({
            totalPages: ${result.totalPage},
            startPage: ${result.currentPage},
            visiblePages:5,
            first:"首页",
            prev:"上页",
            next:"下页",
            last:"尾页",
            onPageClick:function(event,page){ //点击页码的时候会执行的方法
                 $("#currentPage").val(page);
                 $("#searchForm").submit();
            }
 });

角色左移右移处理

1.打开员工input页面时, 查询所有的角色,并且放入下拉框
2.点击 > 按钮后, 找到左边下拉框中选中的数据
var options = $(".allRolesoption:selected")
3.把这些数据移动到右边
$(".selfRoles" ).append(options)

提交表单的bug

提交表单时, 只会提供下拉框中选中的数据,
解决: 在提交表单之前, 设置下拉框中的所有option都有selected属性

角色回显

collection 封装集合

角色去重处理

  1. 页面加载完之后, 先把右边当前员工已经有的角色的id全部放到数组中
    ids = [2,4,5,6]
  2. 遍历左边的集合, 获取到每一个角色的id
  3. 判断该id是否存在ids数组中,如果存在就移除掉, 不存在就保留

权限管理步骤

//查询全部权限表达式
//从spring容器中获取获取所有的controller
//获取所有value值
//遍历循环获取每一个controller  
//获取controller的字节码对象   
//获取controller的所有方法   
//遍历出每一个方法    
//判断是否有贴自定义的权限注解               
//如果有贴,封装成权限对象,并插入数据库               
//通过注解获取权限表达式    (方式一)       
//通过反射拼接权限表达式    (方式二)            
//判断权限表达式是否已经存在数据库中,如果不存在,就需要插入
  • 权限加载前端使用异步的方式提交

登录功能

前端 使用异步的方式提交
后端 登录业务处理, 把当前登录用户放到session中

权限拦截步骤

//权限判断逻辑
//1.获取当前登录用户
//2.判断用户是否是超级管理员    
    //是 = > 放行    
    //否 = > 3
//3.获取当前要执行的处理方法(controller中具体要执行的方法)
//4.判断该方法是否有贴自定义的权限注解    
    //否 => 方法    
    //是 => 5
//5.获取该方法的权限表达式
//6.获取当前用户已经拥有的权限表达式集合 
//7.判断方法的权限表达式是否在该集合中    
    //是 => 放行    
    //否 => 8
//8.跳转到错误提示的页面
//9.不放行

相关文章

  • DAY12-14-RBAC

    一、Bootstrap前端框架 由动态 CSS 语言 Less 写成。(重点是响应式,能适应各种各种设备) 文档网...

网友评论

    本文标题:DAY12-14-RBAC

    本文链接:https://www.haomeiwen.com/subject/zrvznhtx.html