为什么要使用Apache Shiro(一)

597 阅读2分钟

这篇系列文章介绍Apache Shiro的项目目标,架构哲学,以及你怎么使用Shiro保护你的程序。 Apache Shiro 1.8.0是当前的稳定版本(Java 1.8+ JVM).

本系列文章目录如下:

  1. 为什么要使用Apache Shiro(一)
  2. Apache Shiro的三个重要概念(二)
  3. Apache Shiro核心功能之Authentication(三)
  4. Apache Shiro核心功能之Authorization(四)
  5. Apache Shiro核心功能之Session Management(五)
  6. Apache Shiro核心功能之Cryptography(六)
  7. Apache Shiro集成
  8. 将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。

特性一览

shiro.apache.org/features.ht…

你今天为什么还在使用Apache Shiro

  • 易用:易用性是项目的最终目标。应用程序安全可能非常令人困惑和沮丧,并被认为是“necessary evil”。 如果您使它的使用变得非常容易,新手程序员也可以开始使用它,那么它就不再是痛苦的了。
  • 全面:
  • 灵活:可以运行在任意的运行环境。
  • 可插拔的组件:可以很容易的与其他框架或产品集成

核心架构图

shiro.apache.org/architectur…