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:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
7月前
|
缓存 安全 Java
Shiro框架以及Spring Boot整合Shiro
Shiro框架以及Spring Boot整合Shiro
Shiro框架以及Spring Boot整合Shiro
|
2月前
|
安全 Java 数据库
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
这篇文章是关于Apache Shiro权限管理框架的详细学习指南,涵盖了Shiro的基本概念、认证与授权流程,并通过Spring Boot测试模块演示了Shiro在单应用环境下的使用,包括与IniRealm、JdbcRealm的集成以及自定义Realm的实现。
49 3
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
|
2月前
|
Java API Apache
Springboot+shiro,完整教程,带你学会shiro
这篇文章提供了一个完整的Apache Shiro与Spring Boot结合使用的教程,包括Shiro的配置、使用以及在非Web和Web环境中进行身份验证和授权的示例。
97 2
Springboot+shiro,完整教程,带你学会shiro
|
2月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
509 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
2月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
39 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
1月前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
45 0
|
4月前
|
SQL Java 数据库连接
springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、
这篇文章介绍了在Spring Boot + MyBatis + Shiro项目中,如何使用Shiro框架实现登录用户的权限验证,包括用户、角色和权限表的设计,以及通过多个表查询来收集和验证用户权限的方法和代码实现。
springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、
|
4月前
|
SQL 前端开发 Java
springboot项目中使用shiro实现用户登录以及权限的验证
这篇文章详细介绍了如何在Spring Boot项目中集成Apache Shiro框架来实现用户登录和权限验证,包括项目依赖配置、数据库连接、实体类定义、控制器、服务层、Mapper层以及前端页面的实现,并展示了实际效果和过滤器代码。
springboot项目中使用shiro实现用户登录以及权限的验证
|
4月前
|
NoSQL 安全 Java
Java Spring Boot中使用Shiro、JWT和Redis实现用户登录鉴权
Java Spring Boot中使用Shiro、JWT和Redis实现用户登录鉴权
|
4月前
|
安全 Java 数据库
Spring Boot中集成 Shiro
本节主要介绍了 Shiro 安全框架与 Spring Boot 的整合。先介绍了 Shiro 的三大核心组件已经它们的作用;然后介绍了 Shiro 的身份认证、角色认证和权限认证;最后结合代码,详细介绍了 Spring Boot 中是如何整合 Shiro 的,并设计了一套测试流程,逐步分析 Shiro 的工作流程和原理,让读者更直观地体会出 Shiro 的整套工作流程。Shiro 使用的很广泛,希望读者将其掌握,并能运用到实际项目中。
下一篇
DataWorks