以下是一个Shiro学习教程:
一、Shiro简介
Apache Shiro是一个强大且易用的Java安全框架,它提供了身份验证、授权、加密和会话管理等功能。Shiro的设计理念是简单易用,同时又能满足复杂的安全需求,可以轻松地集成到各种Java应用程序中,如Web应用、命令行应用、移动应用等。
二、环境搭建
1. 项目创建与依赖引入
- 如果你使用Maven构建项目,在
pom.xml
文件中添加Shiro依赖:
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.7.1</version>
</dependency>
- 如果是Gradle项目,在
build.gradle
文件中添加:
implementation 'org.apache.shiro:shiro-core:1.7.1'
三、核心概念
1. 主体(Subject)
- 主体可以是任何与应用交互的实体,如用户、第三方服务或定时任务等。在Web应用中,通常代表当前用户。可以通过以下方式获取Subject实例:
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
Subject subject = SecurityUtils.getSubject();
2. 身份验证(Authentication)
- 验证主体身份的过程。
简单示例
- 首先定义用户的账号和密码信息(在实际应用中,这些信息通常存储在数据库中):
import org.apache.shiro.authc.UsernamePasswordToken;
// 假设用户名为 "user",密码为 "password"
UsernamePasswordToken token = new UsernamePasswordToken("user", "password");
- 然后进行身份验证:
try {
subject.login(token);
System.out.println("身份验证成功");
} catch (org.apache.shiro.authc.AuthenticationException e) {
System.out.println("身份验证失败: " + e.getMessage(