• springboot-权限控制shiro(一)


    1. 场景描述

    (1)权限控制是IT项目特别是企业项目,绕不开的重要模块,接下来结合springboot介绍下权限控制框架shiro。

    (2)springboot集成shiro的东西有点多,一篇博客完全介绍清楚有点费劲,拟分成3篇吧,第一篇介绍概念、原理;第二篇介绍搭建代码,详细介绍shiro框架;第三篇结合mybatis,搭建可运行项目。

    2. 解决方案

    2.1 简介

    目前的权限控制,很多公司或者企业采用的都是基于角色进行访问控制的。

    百度百科介绍,RBAC(英文缩写)

    2.2 角色控制原理

    通过数据库表结构进行介绍

    说明:

    基于角色的权限控制,基本都是基于这五张表来的。

    这五张表分别是:

    (1)用户表,存储用户信息。

    (2)角色表,存储角色信息,这里的角色类似于我们生活中的角色,企业中角色一般是:财务录单员、财务审核人、财务经理、采购员、采购经理等等。

    (3)资源表,一般是系统菜单或者其他资源。

    (4)用户角色表,多对多关系。

    (5)角色资源表,多对多关系。

    流程:

    (1)用户登录,校验用户名与密码是否正确;

    (2)通过用户名获取用户对应的角色;

    (3)通过角色获取对应的资源,返回给前端。

    2.3 常用框架

    基于上面的权限控制原理,项目组可以通过代码来实现权限控制,也可以通过框架来实现,以前常用的或者好多企业在用的是spring security权限控制框架,一般会基于spring security做一套统一登录系统(单点登录),由一个系统统一控制企业用户权限,其他系统通过接口方式获取用户权限信息。

    以前项目中也一直使用spring security,但是security的过滤链还是小多的,配置起来还是稍微有点麻烦,后来听别人说起shiro,看了下官网,又查了相关资料,shiro也是apache下的子项目,使用者也蛮多的,好评不少,发现比securiy简洁很多,效果也差不多,后续的项目就改用shiro了。

    2.4 shiro介绍

    2.4.1 官网

    http://shiro.apache.org/

    2.4.2 使用方式

    通过maven的gav获取jar使用(目前官网最新版本1.4.1)

           <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-spring</artifactId>
                <version>1.4.0</version>
            </dependency>
    
    2.4.3 shiro介绍

    shiro主要包含六大模块

    (1)认证;(2)授权;(3)密码;(4)回话管理;(5)web集成;(6)集成模块

    说明

    常用的把(1)和(2)用好就可以了,3-6可以暂时不用管。

    其中(1)是登录校验,就是校验用户名和密码是否正确用的模块;(2)是权限控制模块,校验登录用户是否有资源权限。

    好了,先到这里,下节开始全程撸码与详细shiro权限控制框架介绍。


    I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!

  • 相关阅读:
    Git合并开发代码分支到测试代码分支
    用webdriver+phantomjs实现无浏览器的自动化过程
    软件测试工作中涉及的Linux命令整理
    Windows系统端口占用情况检查脚本
    PowerShell调用jira rest api实现对个人提交bug数的统计
    地下城堡游戏小脚本儿——自动炼金
    Java中通过JDBC远程连接Oracle数据库
    PowerShell调用jira rest api实现jira统计自动化
    【Spring】12、Spring Security 四种使用方式
    【hibernate】1、Hibernate的一个注解 @Transient
  • 原文地址:https://www.cnblogs.com/ruanjianlaowang/p/11246530.html
Copyright © 2020-2023  润新知