千家信息网

权限控制框架Shiro简单介绍及配置实例

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,Shiro是什么Apache Shiro是一个非常易用的Java安全框架它能提供验证、授权、加密和Session控制。Shiro非常轻量级而且API也非常易于理解可以使用Shiro完成从APP到企业级
千家信息网最后更新 2025年01月21日权限控制框架Shiro简单介绍及配置实例

Shiro是什么

Apache Shiro是一个非常易用的Java安全框架它能提供验证、授权、加密和Session控制。Shiro非常轻量级而且API也非常易于理解可以使用Shiro完成从APP到企业级应用的所有权限控制。

宏观视图

从宏观来看Shiro架构中有3个重要概念Subjct、SecurityManager和Realms。

Subject

Subject实际上是正在执行的用户的抽象"用户"这里可以指自然人第三方服务代理账户或者其他。

Subject被绑定在SecurityManager上当我们与Subject交互时实际上是与SecurityManager交互。

SecurityManager

SecurityManager是Shiro权限架构的核心内部维护了一系列安全组件。然而我们一旦将其配置完成真正给用户强相关的就是Subject接口了。

当我们操作subject时实际上就是在操作SecurityManager。

Realms

Reamls是Shiro与我们应用的安全数据沟通的桥梁在Realm中真正实现用户登录与授权的逻辑。

从这个角度上来讲Realms其实是一个安全领域的DAO发将相关数据封装并提供给Shiro当使用Shiro时我们必须制定至少一个Realms。

SecurityManager可以配置多个Realms但是至少一个。

Shiro已经提供了默认的DAO实现如LDAP和JDBC另外我们也能实现自己的DAO例如使用Redis。

细节视图

Subject(org.apache.shiro.subject.Subject)

与当前软件交互的安全视角内的用户抽象用户、第三方服务

SecurityManager(org.apache.shiro.mgt.SecurityManager)

Shiro安全框架的核心像保护伞一样管理着和协调其内部组件确保其协调运行。它也维护着每个用户的Shiro角色因此它知道用户的所有安全操作。

Authenticator(org.apache.shiro.authc.Authenticator)

负责执行和验证用户登录行为的组件当一个用户试图登录该逻辑是由Authenticator执行的。Authenticator知道如何去协调一个或者更多的realms这些realms保存着用户信息。而且realms中的数据被取出用来验证用户。

Authentication Strategy(org.apache.shiro.)

如果配置了多个realmsAuthentication Strategy将负责协调各Realms的判断逻辑。

Authorizer(org.apache.shiro.authz.Authorizer)

用户控制用户访问主要是决定用户能否访问某些资源。类似于AuthenticatorAuthorizer也知道如何协调多个数据源并据此判断这些用户能否执行某个给定的Action。

SessionManager(org.apache.shiro.session.mgt.SessionManager)

SessionManager知道怎样创建和管理用户Session生命周期从而为用户提供一个健壮的Session体验。这种机制是Shiro的独创即使不是Web工程Shiro也能提供内置的Session机制。

SessionDao负责存取Session。

  • SessionDao(org.apache.shiro.session.mgt.eis.SessionDao)

SessionDao替SessionManager完成Session的CRUD操作它允许任何Session保存方式Redis/Memcache/DB..

CacheManager(org.apache.shiro.cache.CacheManager)

用来保存Shiro使用的鉴权数据可以使用任何现有的cache产品。

Cryptography(org.apache.shiro.crypto.*)

加密工具包根据需要使用

Realms(org.apache.shiro.realm.Realm)

真正与安全相关数据例如账户我们可以创建任意多的Realm。

配置实例

     Shiro Configuration                                                                                                                                                                                                                            /bower_components/** = anon                                /info/home/Vh2/**=anon                /=anon                                /** = authc                                                                                                                                                                                                                                                                                                                                                                                                                                                             


用户 安全 数据 配置 控制 多个 实际 实际上 组件 逻辑 登录 管理 验证 权限 框架 宏观 就是 机制 架构 核心 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 自己怎么搭建公网服务器 数据库课程设计系统功能分析 计算机网络技术有什么有利 我的世界基岩版看不到服务器名称 数据库 论文题目 网络安全 责任制 国外对中国文化数据库 网络安全文明校园绘画图片 计算机网络安全技术概论 有案底找软件开发 为什么要选择机架式服务器 软件开发就业去向与前程 中国银行软件开发中地址 上海陌核互联网科技是外包 数据库主键后标记 网络安全宣传 招商局支行 网络安全保护的是什么意思 数据库原理与技术附录上机题 数据库问号表达式 如何查询海量数据库 嵌入式软件开发的简历编写模板 体现软件开发质量的指标 药房数据库系统逻辑结构 前端拖拽排序写入数据库 税务强化网络安全 北京搜狗网络技术有限公司 为什么黑客要去攻击服务器 手机版mc登录服务器 扬讯软件开发有限公司招聘 软件开发产学研合作
0