栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java难题解决之:安全框架Shiro和Spring Security对比

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java难题解决之:安全框架Shiro和Spring Security对比

Shiro简介

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

Shiro架构与功能介绍

1.认证与授权相关基本概念

两个基本的概念

安全实体:系统需要保护的具体对象数据

权限:系统相关的功能操作,例如基本的CRUD

Authentication: 认证。即验证是哪个用户登录。

Authorization:也被称为访问控制,即决定当前登录用户是否有权限去访问受保护的资源。

Cryptography:通过加密算法保护数据安全。

Session Management: 当用户使用你的应用是自身携带的数据。

Web Integration: 虽然Shiro是设计用来确保任何基于JVM的应用,但是很多时候是用来保护Web应用。

Integrations:可以很好的集成其他的技术和框架。

2.Shiro四大核心功能:Authentication,Authorization,Cryptography,Session Management

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q4lcP2qS-1651317079092)(//upload-images.jianshu.io/upload_images/16642395-8ebc63054b48affe?imageMogr2/auto-orient/strip|imageView2/2/w/462/format/webp)]

Shiro架构

3.Shiro三个核心组件:Subject, SecurityManager 和 Realms.

subject:主体,可以是用户也可以是程序,主体要访问系统,系统需要对主体进行认证、授权。

securityManager:安全管理器,主体进行认证和授权都是通过securityManager进行,是shiro的心脏。

**realm:**域,领域,相当于数据源,通俗意义的DAO层,通过realm存取认证、授权相关数据。

Spring Security简介

Spring Security是一个灵活和强大的身份验证和访问控制框架,以确保基于Spring的Java Web应用程序的安全。它是一个轻量级的安全框架,它确保基于Spring的应用程序提供身份验证和授权支持。它与Spring MVC有很好地集成,并配备了流行的安全算法实现捆绑在一起。安全主要包括两个操作“认证”与“验证”(有时候也会叫做权限控制)。“认证”是为用户建立一个其声明的角色的过程,这个角色可以一个用户、一个设备或者一个系统。“验证”指的是一个用户在你的应用中能够执行某个操作。在到达授权判断之前,角色已经在身份认证过程中建立了。

它的设计是基于框架内大范围的依赖的,可以被划分为以下几块。

Web/Http 安全:这是最复杂的部分。通过建立 filter 和相关的 service bean 来实现框架的认证机制。当访问受保护的 URL 时会将用户引入登录界面或者是错误提示界面。

业务对象或者方法的安全:控制方法访问权限的。

AuthenticationManager:处理来自于框架其他部分的认证请求。

AccessDecisionManager:为 Web 或方法的安全提供访问决策。会注册一个默认的,但是我们也可以通过普通 bean 注册的方式使用自定义的 AccessDecisionManager。

AuthenticationProvider:AuthenticationManager 是通过它来认证用户的。

UserDetailsService:跟 AuthenticationProvider 关系密切,用来获取用户信息的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EVoLw1mA-1651317079150)(//upload-images.jianshu.io/upload_images/16642395-e70a6437c450efbe?imageMogr2/auto-orient/strip|imageView2/2/w/640/format/webp)]

Shiro和Spring Security比较

Shiro比Spring更容易使用,实现和最重要的理解

Spring Security更加知名的唯一原因是因为品牌名称

“Spring”以简单而闻名,但讽刺的是很多人发现安装Spring Security很难

然而,Spring Security却有更好的社区支持

Apache Shiro在Spring Security处理密码学方面有一个额外的模块

Spring-security 对spring 结合较好,如果项目用的springmvc ,使用起来很方便。但是如果项目中没有用到spring,那就不要考虑它了。

Shiro 功能强大、且 简单、灵活。是Apache 下的项目比较可靠,且不跟任何的框架或者容器绑定,可以独立运行

个人感想

shiro首选 ,上手快 ,控制粒度可糙可细 ,自由度高 ,我已经抛弃了spring安全管理 投向shiro好多年。

对于学习Java还有相关的一切疑惑与难题,皆可随时私信我咨询,朋友圈 输入:huany6880 本人接触Java语言将近20年时间,敢说自己对于Java的了解是精通的水平,如能尽自己的绵薄之力为大家提供一些微薄的帮助,不胜荣幸。另外还有专属IT编程就业规划师(Java、人工智能方向)和Java架构师路线图、面试题资料。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/863345.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号