这篇系列文章介绍Apache Shiro的项目目标,架构哲学,以及你怎么使用Shiro保护你的程序。 Apache Shiro 1.8.0是当前的稳定版本(Java 1.8+ JVM).
本系列文章目录如下:
- 为什么要使用Apache Shiro(一)
- Apache Shiro的三个重要概念(二)
- Apache Shiro核心功能之Authentication(三)
- Apache Shiro核心功能之Authorization(四)
- Apache Shiro核心功能之Session Management(五)
- Apache Shiro核心功能之Cryptography(六)
- Apache Shiro集成
- 将Apache Shiro集成到Spring-Boot应用程序中
什么是Apache Shiro
Apache Shiro是一个Java安全框架,它提供了一种简单但功能强大的应用程序安全性方法。
Apache Shiro(发音为“shee-roh”)是一个功能强大且易于使用的Java安全框架,可执行身份验证(authentication)、授权(authorization)、加密(cryptography)和会话管理(session management),可用于保护任何应用程序——从命令行应用程序,移动应用到最大的web企业应用。
Shiro提供了应用程序安全API来执行以下方面(我喜欢把它们称为应用程序安全的4个基石):
- Authentication-提供了身份认证,经常被称为“登录”
- Authorization-访问控制
- Cryptography-保护或隐藏数据不被窥探
- Session Manegement-每个用户相关的时间敏感的状态,用户状态
为什么构建Apache Shiro这一产品
- 在2008年进入Apache基金会以前, Shiro已经5周岁了,她在2003年开始的JSecurity project中很有名气.
- 在2003年,对于java应用程序开发人员来说,还没有很多通用的安全替代方案——我们只能使用Java身份验证和授权服务,也就是JAAS.
- JAAS有很多缺点 - 虽然它的身份验证功能还算可以接受,但授权方面的功能很迟钝,使用起来很麻烦.
- JAAS关注很多虚拟机级别的安全问题,例如,决定某一个类是否被允许加载到JVM。
特性一览
你今天为什么还在使用Apache Shiro
- 易用:易用性是项目的最终目标。应用程序安全可能非常令人困惑和沮丧,并被认为是“necessary evil”。 如果您使它的使用变得非常容易,新手程序员也可以开始使用它,那么它就不再是痛苦的了。
- 全面:
- 灵活:可以运行在任意的运行环境。
- 可插拔的组件:可以很容易的与其他框架或产品集成