springboot-权限控制shiro(一)

1. 场景描述

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

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

2. 解决方案

2.1 简介

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

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

2.2 角色控制原理

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

说明:apache

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

这五张表分别是:mybatis

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

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

(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 「软件老王」,若是以为还能够的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!

原文出处:https://www.cnblogs.com/ruanjianlaowang/p/11246530.html

相关文章
相关标签/搜索