shiro入门教程
需积分: 0 47 浏览量
更新于2016-02-27
2
收藏 28KB DOCX 举报
### Shiro 入门教程:理解 Java 中的认证过程
#### 概述
Apache Shiro 是一个强大且易用的 Java 安全框架,它执行安全相关的任务,如认证、授权、加密和会话管理。本教程将详细介绍 Shiro 中的认证流程,适合初学者学习。通过本文档的学习,您将掌握 Shiro 认证的基本概念和技术实现。
#### 术语解释
在深入探讨 Shiro 的认证流程之前,我们首先需要了解几个关键术语:
1. **Subject(主体)**:
- 主体是安全上下文中应用程序用户的一个视图。
- 可以是人类用户、第三方进程、服务器、定时任务等任何与应用程序通信的对象或实体。
2. **Principals(身份标识属性)**:
- 用于识别主体的属性,例如用户名、姓名、身份证号等。
- 这些标识属性是证明主体身份的基础。
3. **Credentials(凭证)**:
- 用于验证身份的秘密数据。
- 常见的凭证包括密码、生物特征数据(指纹、面部识别)、X.509 证书等。
4. **Realms(领域)**:
- 领域是一种数据访问对象(DAO),负责与后端数据源进行交互。
- 如果您的系统使用 LDAP 存储用户名和密码,则需要创建一个 LDAP 领域来与 LDAP 服务器通信。
- 每个后端数据源通常对应一个领域,Shiro 负责协调这些领域来完成安全相关的任务。
#### 如何在 Java 中使用 Shiro 进行认证
Shiro 的认证过程可以分为三个主要步骤:
1. **收集主体的身份标识和凭证**:
- 获取用户的用户名和密码或其他凭证信息。
- 在实际应用中,这一步可以通过 HTTP 请求、GUI 输入等方式实现。
2. **提交身份标识和凭证到认证系统**:
- 将收集到的信息发送到 Shiro 的认证组件进行处理。
3. **允许访问、重试认证或阻止访问**:
- 根据认证结果决定是否允许用户访问资源。
下面通过具体的代码示例来展示这些步骤的具体实现。
#### 示例代码:Shiro 认证过程
1. **收集主体的身份标识和凭证**:
```java
// 使用最常见的情形:获取用户名和密码
// 通过系统特定的方式(HTTP 请求、GUI 等)获取
UsernamePasswordToken token = new UsernamePasswordToken(username, password);
// 设置“记住我”功能
token.setRememberMe(true);
```
在此步骤中,我们使用 `UsernamePasswordToken` 类来打包用户名和密码。这是一个常用的认证令牌类,用于封装用户的登录信息。
2. **提交身份标识和凭证到认证系统**:
```java
// 获取当前 Subject
Subject currentUser = SecurityUtils.getSubject();
// 提交 Token 进行认证
currentUser.login(token);
```
通过 `SecurityUtils.getSubject()` 方法获取当前的 `Subject` 对象,并调用其 `login()` 方法来提交认证令牌。如果认证成功,用户就可以访问相应的资源了。
3. **允许访问、重试认证或阻止访问**:
认证成功后,Shiro 会根据配置自动处理后续的操作,例如更新会话状态、设置“记住我”功能等。如果认证失败,可以根据具体情况进行重试或者显示错误消息。
#### 总结
本教程详细介绍了 Apache Shiro 中的认证流程,包括基本概念、术语以及具体的实现步骤。通过理解这些基础知识,初学者可以更好地掌握 Shiro 的核心机制,并能够将其应用于实际项目中。希望本教程能帮助您顺利入门 Shiro,为您的 Java 应用程序提供强大的安全保障。

qq_31036993
- 粉丝: 0
最新资源
- 家具网络整合方案.doc
- 软件配置管理规范.doc
- 幼儿教师网络培训心得体会五篇2021.docx
- 轨迹可控表面超塑性制造技术与延寿机理上海经济和信息化委员会.doc
- 网站站长2020工作总结.doc
- 发电厂电力监控系统安全防护方案模板风电场样本.doc
- 我的人工神经网络-12-RBFN.ppt
- 加减乘除运算法则.doc
- 最新电大《网络广告实务》形考作业任务01-05网考试题.docx
- 2023年未来教育计算机二级Office真考题库试卷选择题.doc
- 最新最新毕业设计(论文)基于单片机的电容测量仪设计.docx
- 通信工程开工前需报送监理单位的表格.doc
- 信息化战略规划.综述(ppt文档).ppt
- 第二讲-互联网精准营销.ppt
- jsp外文文献.doc
- 综合布线中的六大子系统.ppt