SpringBoot+Shiro(一)

本文涉及的产品
访问控制,不限时长
简介: SpringBoot+Shiro(一)

一、简介:讲解什么是权限控制,初学javaWeb的处理流程

1、什么是权限控制:

①、忽略特别细的概念,比如权限能细分很多种,功能权限,数据权限,管理权限等。

②、理解两个概念:用户和资源,让指定的用户/程序,只能操作指定的资源(CRUD)

2、初学javaWeb时怎么做的

①、Filter接口中有一个doFilter方法,自己编写好业务Filter,并配置对哪个web资源进行拦截

②、如果访问的路径命中对应的Filter,则会执行doFilter()方法,然后判断是否有权限进行访问对应的资源。

/api/user/info?id=1,访问的时候会带一个cookie或者sessionId,每一个浏览器打开都会有一个唯一的session的。

举例:用户登录之后才可以访问个人信息

二、说下权限框架核心知识ACL和RBAC

简介:介绍下什么是ACL和RBAC,这两种是目前用的最多的模型

在阿里,腾讯,百度,这两个思想往往是并存的。

①、ACL:Access Control List访问控制列表

   A、以前盛行的一种权限涉及,它的核心在于用户直接和权限挂钩

   B、优点:简单易用,开发便捷

   C、缺点:用户和权限直接挂钩,导致在授予时的复杂性,比较分散,不便于管理

比如一个部门有很多的组,一个组里面有很多的成员,成员的申请 ,和审批是比较麻烦。

   D、例子:常见的文件系统权限设计,直接给用户加权限。比如苹果系统,liunx系统

②、RBAC:  Role  Based Access Control

   A、基于角色的访问控制系统,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限

    B、简化了用户与权限的管理,通过对用户进行分类,使得角色与权限关联起来。

   C、缺点:开发对比ACL相对复杂

   D、例子:基于RBAC的模型的权限验证框架与应用 Apache  Shiro ,spring  Security

举个例子:BAT企业 ACL,一般是对报表系统,阿里的ODPS

总结:不能过于复杂,规则过多,维护性和性能会下降 ,更多分类 ABAC,PBAC等


二、简介:介绍主流的权限框架 Apache Shiro,spring  Security

1、什么是spring security:官网基础介绍:

 官网:https://spring.io/projects/spring-security

Spring  Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring Ioc,DI(控制反转Inversion of Control,DI,Dependency Injection 依赖注入) 和AOP(面向 切面编程),为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。

一句话:Spring Security的前身是 Acegi Security,是Spring项目组中用来提供安全认证服务的框架。

2、什么是Apache Shiro:官网基础介绍:

 官网:https://github.com/apachce/shiro

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证,授权,密码和会话管理,使用Shiro的易于理解的API,您可以理解,轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

一句话:Shiro是一个强大易用的Java安全框架,提供了认证,授权,加密和会话管理的功能。

3、两个优缺点,应该怎么选择

①、Apache Shiro比Spring Security,前者使用更简单

②、Shiro 功能强大,简单,灵活,不跟任何的框架或者容器绑定,可以独立运行

③、Spring Security对Spring体系支持比较好,脱离Spring体系则很难看法

④、Spring Security支持Oauth鉴权:https://spring.io/projects/spring-ecurity-oauth,Shiro需要自己实现。

总结:两个框架没有谁超过谁,大体功能一致,新手一般先推荐Shiro,学习会更容易。

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
4月前
|
缓存 安全 Java
Shiro框架以及Spring Boot整合Shiro
Shiro框架以及Spring Boot整合Shiro
Shiro框架以及Spring Boot整合Shiro
|
1月前
|
SQL Java 数据库连接
springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、
这篇文章介绍了在Spring Boot + MyBatis + Shiro项目中,如何使用Shiro框架实现登录用户的权限验证,包括用户、角色和权限表的设计,以及通过多个表查询来收集和验证用户权限的方法和代码实现。
springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、
|
1月前
|
SQL 前端开发 Java
springboot项目中使用shiro实现用户登录以及权限的验证
这篇文章详细介绍了如何在Spring Boot项目中集成Apache Shiro框架来实现用户登录和权限验证,包括项目依赖配置、数据库连接、实体类定义、控制器、服务层、Mapper层以及前端页面的实现,并展示了实际效果和过滤器代码。
springboot项目中使用shiro实现用户登录以及权限的验证
|
1月前
|
NoSQL 安全 Java
Java Spring Boot中使用Shiro、JWT和Redis实现用户登录鉴权
Java Spring Boot中使用Shiro、JWT和Redis实现用户登录鉴权
|
1月前
|
安全 Java 数据库
Spring Boot中集成 Shiro
本节主要介绍了 Shiro 安全框架与 Spring Boot 的整合。先介绍了 Shiro 的三大核心组件已经它们的作用;然后介绍了 Shiro 的身份认证、角色认证和权限认证;最后结合代码,详细介绍了 Spring Boot 中是如何整合 Shiro 的,并设计了一套测试流程,逐步分析 Shiro 的工作流程和原理,让读者更直观地体会出 Shiro 的整套工作流程。Shiro 使用的很广泛,希望读者将其掌握,并能运用到实际项目中。
|
2月前
|
安全 Java Apache
如何安装与使用Spring Boot 2.2.x、Spring Framework 5.2.x与Apache Shiro 1.7进行高效开发
【7月更文第1天】在现代Java Web开发领域,Spring Boot以其简化配置、快速开发的特点备受青睐。结合Spring Framework的成熟与Apache Shiro的强大权限控制能力,我们可以轻松构建安全且高效的Web应用。本篇文章将指导你如何安装并使用Spring Boot 2.2.x、Spring Framework 5.2.x以及Apache Shiro 1.7来构建一个具备基础权限管理功能的项目。
62 0
|
3月前
|
NoSQL 安全 Linux
springboot+shiro+redis前后端分离实现认证(一)
springboot+shiro+redis前后端分离实现认证(一)
106 0
|
3月前
|
JavaScript 前端开发 NoSQL
杨校老师项目之基于SpringBoot+Shiro+Vue的企业人事管理系统
杨校老师项目之基于SpringBoot+Shiro+Vue的企业人事管理系统
35 0
|
3月前
|
安全 Java 数据安全/隐私保护
上手spring boot项目(二)之spring boot整合shiro安全框架
上手spring boot项目(二)之spring boot整合shiro安全框架
|
3月前
|
开发框架 安全 Java
信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot等
信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot等