介绍
Apache Shiro 是一个功能强大、易于使用的Java安全框架,它执行身份验证、授权、加密和会话管理。使用Shiro的易于理解的API,您可以快速轻松地保护任何应用程序——从最小的移动应用程序到最大的Web和企业应用程序。
Shiro同类型框架,主要有Spring Security,都是起到系统的安全方面的能力。Shiro主要包含以下几大核心组件:
核心组件说明:
组件 | 说明 |
---|---|
SecurityManager | 安全管理器,图中没有对此说明,但安全管理器又起到了最重要的作用,它对 所有组件起到统一管理的作用。可以理解为Shiro架构本身。 |
Realms | 域,图中也没有对此说明,Shiro从Realm获取安全数据(如用户、角色、权限), 就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户 进行比较以确定用户身份是否合法;也需要从Realm得到用户相应的角色/权限 进行验证用户是否能进行操作;可以把Realm看成DataSource,即安全数据源。 |
Authentication | 认证管理器,起到用户登录认证的作用。 |
Authorization | 授权管理器,访问授权控制,相当于角色权限管理,即确定“谁”可以访问“什么”。 |
Session Management | 会话管理。 |
Cryptography | 加密算法,使用加密算法保持数据的安全,同时仍易于使用。 |
另外可以看到Supporting Features中,包括了Web支持,说明Shiro除了可以应用在Java工程之外,还可以应用在Web工程中,而且也包括了对缓存、并发的支持等等。
准备
这里以JavaWeb工程为例,基于:SpringBoot 1.5.x 搭建项目,thymeleaf 模板引擎显示视图层。
<!-- shiro -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>com.github.theborakompanioni</groupId>
<artifactId>thymeleaf-extras-shiro</artifactId>
<version>1.2.1</version>
</dependency>
应用
作者: Zealon
崇尚简单,一切简单自然的事物都是美好的。