前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >①【Shiro】什么是Shiro安全框架?

①【Shiro】什么是Shiro安全框架?

作者头像
.29.
发布2024-03-21 10:51:00
2090
发布2024-03-21 10:51:00
举报
文章被收录于专栏:个人技术博客

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~

①【Shiro】什么是Shiro安全框架?
  • Shiro功能介绍
  • Shiro架构

Shiro功能介绍

Apache Shiro 是一个功能强大且灵活的开源安全框架,可以干净地处理身份验证,授权,企业会话 Management 和加密。

Shiro功能模块:

Shiro 的目标是 Shiro 开发团队所说的“应用程序安全的四大基石”——身份验证、授权、会话管理和加密:

  • 认证(Authentication): 有时被称为“登录”,这是证明用户是他们所说的人的行为。
  • 授权(Authorization): 访问控制的过程,即确定“谁”有权访问“什么”。
  • 会话管理(Session Management): 管理特定于用户的会话,即使在非 Web 或 EJB 应用程序中也是如此。
  • 密码学(Cryptography): 使用加密算法确保数据安全,同时仍然易于使用。

在不同的应用程序环境中,还有一些其他功能来支持和加强这些问题,特别是:

  • Web 支持(Web Support):Shiro 的 Web 支持 API 有助于轻松保护 Web 应用程序。
  • 缓存(Caching):缓存是 Apache Shiro API 中的一线公民,可确保安全操作保持快速高效。
  • 并发(Concurrency):Apache Shiro 通过其并发功能支持多线程应用程序。
  • 测试(Testing):测试支持可帮助您编写单元和集成测试,并确保您的代码按预期受到保护。
  • “Run As”:允许用户采用其他用户的身份(如果允许)的功能,有时在管理方案中很有用。
  • “Remember Me”:记住用户在会话中的身份,因此他们只需要在强制登录时登录。

Shiro架构

Shiro安全框架 外部架构

从应用程序角度来看:

  • Subject应用代码直接交互的对象是Subject ,也就是说Shiro的对外API核心就是Subject。Subject代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫、机器人等。与Subject的所有交互都会委托给SecurityManager,Subject其实是一个门面,SecurityManager才是实际的执行者;
  • SecurityManager:即安全管理器 ;所有与安全有关的操作都会与SecurityManager交互,且其管理着所有Subject。可以看出它是Shiro的核心 ,它负责与Shiro的其他组件进行交互,它相当于SpringMVC中DispatcherServlet的角色
  • Realm:Shiro从Realm获取安全数据(如用户、角色、权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法。也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作。可以把Realm看成DataSource。

Shiro安全框架 内部架构

  1. Subject:任何可以与应用交互的“用户”。
  2. Security Manager:Shiro 的核心,所有具体的交互都通过 SecurityManager 进行控制;它管理着所有 Subject、且负责进行认证、授权、会话及缓存的管理。
  3. Authenticator:负责 Subject 认证,是一个扩展点,可以自定义实现;可以使用认证策略(Authentication Strategy),即什么情况下判定用户认证通过。
  4. Authorizer:授权器、即访问控制器,用来决定主体是否有权限进行相应的操作;即控制着用户能访问应用中的哪些功能;
  5. Realm:可以有 1 个或多个 Realm,可以认为为安全实体数据源,用于获取安全实体;可以是 JDBC 实现,也可以是内存实现等等;由用户提供,所以一般在应用中都需要实现自己的 Realm;
  6. SessionManager:管理Session声明周期的组件,通过Shiro框架的这一模块,开发者可在任何应用或架构层一致地使用Session API;
  7. CacheManager:缓存控制器,来管理如用户、角色、权限等的缓存的;因为这些数据基本上很少改变,放到缓存中后可以提高访问的性能;
  8. Cryptography:密码模块,提供了一些常见的加密组件用于如密码加密/解密。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ①【Shiro】什么是Shiro安全框架?
  • Shiro功能介绍
  • Shiro架构
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档