这么直观、易用的 Apache Shiro,你不知道吗

简介: Apache Shiro 是一个开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro 框架具有直观、易用等特性,同时也能提供健壮的安全性,虽然它的功能不如 SpringSecurity 那么强大,但是在普通的项目中也够用了。

由来

Shiro 的前身是 JSecurity,2004年,Les Hazlewood 和 Jeremy Haile 创办了 Jsecurity。当时他们找不到适用于应用程序级别的合适 Java 安全框架,同时又对 JAAS 非常失望。

2004 年到 2008 年期间,JSecurity 托管在 SourceForge 上,贡献者包括 Peter Ledbrook、Alan Ditzel 和 Tim Veil。

2008年,JSecurity 项目贡献给了Apache软件基金会(ASF),并被接纳成为Apache Incubator 项目,由导师管理,目标是成为一个顶级 Apache 项目。期间,Jsecurity 曾短暂更名为 Ki,随后因商标问题被社区更名为 “Shiro” 。随后项目持续在 Apache Incubator 中孵化,并增加了贡献者 Kalle Korhonen。

2010年7月,Shiro 社区发布了 1.0 版,随后社区创建了其项目管理委员会,并选举 Les Hazlewood 为主席。2010年9月22日,Shrio 成为 Apache 软件基金会的顶级项目(TLP)。

有哪些功能

Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架应该尽可能掩盖复杂的地方,露出一个干净而直观的 API,来简化开发人员在应用程序安全上所花费的时间。

以下是你可以用 Apache Shiro 所做的事情:

  1. 验证用户来核实他们的身份
  2. 对用户执行访问控制,如:判断用户是否被分配了一个确定的安全角色;判断用户是否被允许做某事
  3. 在任何环境下使用 Session API,即使没有 Web 容器
  4. 在身份验证,访问控制期间或在会话的生命周期,对事件作出反应
  5. 聚集一个或多个用户安全数据的数据源,并作为一个单一的复合用户“视图”
  6. 单点登录(SSO)功能
  7. 为没有关联到登录的用户启用"Remember Me"服务

。。。。等等

Apache Shiro 是一个拥有许多功能的综合性的程序安全框架。下面的图表展示了 Shiro 的重点:

38.jpg

Shiro 中有四大基石——身份验证,授权,会话管理和加密。

  1. Authentication:有时也简称为“登录”,这是一个证明用户是谁的行为。
  2. Authorization:访问控制的过程,也就是决定“谁”去访问“什么”。
  3. Session Management:管理用户特定的会话,即使在非Web 或EJB 应用程序。
  4. Cryptography:通过使用加密算法保持数据安全同时易于使用。

除此之外,Shiro 也提供了额外的功能来解决在不同环境下所面临的安全问题,尤其是以下这些:

  1. Web Support:Shiro 的 web 支持的 API 能够轻松地帮助保护 Web 应用程序。
  2. Caching:缓存是 Apache Shiro 中的第一层公民,来确保安全操作快速而又高效。
  3. Concurrency:Apache Shiro 利用它的并发特性来支持多线程应用程序。
  4. Testing:测试支持的存在来帮助你编写单元测试和集成测试。
  5. "Run As":一个允许用户假设为另一个用户身份(如果允许)的功能,有时候在管理脚本很有用。
  6. "Remember Me":在会话中记住用户的身份,这样用户只需要在强制登录时候登录。

学习资料

Shiro 的学习资料并不多,没看到有相关的书籍。张开涛的《跟我学Shiro》是一个非常不错的资料,小伙伴可以搜索了解下。

好了,上面就是我们对 shiro 的一个简单介绍,从下篇文章开始,我将带着小伙伴们一起来学习如何在项目中使用 shiro。

相关文章
|
安全 算法 Oracle
【WEB安全】Apache Shiro 反序列化漏洞(上)
Apache Shiro是一款开源企业常见JAVA安全框架,提供身份验证、授权、密码学和会话管理。java中的权限框架有SpringSecurity和Shiro,由于Spring功能强大但复杂,Shiro的简单强大,扩展性好因此用的还是很多。
610 0
【WEB安全】Apache Shiro 反序列化漏洞(上)
|
7月前
|
存储 安全 Java
【Shiro】Apache Shiro 默认密钥致命令执行漏洞(CVE-2016-4437)的解决方案
【Shiro】Apache Shiro 默认密钥致命令执行漏洞(CVE-2016-4437)的解决方案
148 0
|
12月前
|
安全 Apache 数据安全/隐私保护
Apache Shiro < 1.7.0 权限绕过漏洞集合
今天发现阿里云服务器出现了告警: shiro 1.3.2 进程ID:3932 路径:xxx\shiro-core-1.3.2.jar 命中:shiro version less than 1.7.0 网上一搜,找到了如下资料: 2020年11月2日,阿里云应急响应中心监测到Apache Shiro官方发布安全更新,修复了一个最新权限绕过漏洞。攻击者利用该漏洞可以绕过验证访问到后台功能,风险较高
268 0
|
存储 缓存 安全
Apache Shiro身份认证过程详解
Apache Shiro身份认证过程详解
200 0
Apache Shiro身份认证过程详解
|
存储 安全 Java
Apache shiro介绍
当你尝试保护你的程序时候你会被困扰吗?你会觉得现有的java安全方案难以使用并且将来还会困惑你?这篇文章介绍Apach shiro,一个简单而又强大的保护程序安全的安全框架。它解释了Apache的项目目标。架构原理和如何使用shiro保护你的程序。
246 0
|
NoSQL Java Apache
SpringBoot搭建基于Apache Shiro+Redis的分布式Session共享功能
我们在上一遍文档中已经完成了Shiro验证功能。(http://www.cnblogs.com/nbfujx/p/7773789.html),在此基础上我们将完成分布式Session共享功能。 Redis的使用 Maven Plugin添加Redis相关jar包 1 2 org.
4787 0
|
网络安全 Apache 网络架构
Apache Shiro内置过滤器
shiro内置过滤器研究   anon org.apache.shiro.web.filter.authc.AnonymousFilter authc org.apache.shiro.
733 0
|
安全 Oracle 关系型数据库
【WEB安全】Apache Shiro 反序列化漏洞(下)
Apache Shiro是一款开源企业常见JAVA安全框架,提供身份验证、授权、密码学和会话管理。java中的权限框架有SpringSecurity和Shiro,由于Spring功能强大但复杂,Shiro的简单强大,扩展性好因此用的还是很多。
323 0
【WEB安全】Apache Shiro 反序列化漏洞(下)
|
安全 Java Shell
【WEB安全】Apache Shiro 反序列化漏洞(中)
Apache Shiro是一款开源企业常见JAVA安全框架,提供身份验证、授权、密码学和会话管理。java中的权限框架有SpringSecurity和Shiro,由于Spring功能强大但复杂,Shiro的简单强大,扩展性好因此用的还是很多。
415 0
【WEB安全】Apache Shiro 反序列化漏洞(中)

推荐镜像

更多