Apache Shiro入门与自定义Realm详解
需积分: 10 169 浏览量
更新于2024-08-18
收藏 1.33MB PPT 举报
"这篇文档介绍了Apache Shiro框架的使用规范,特别是如何进行简单扩展,以及Shiro的主要功能和组件。"
在Apache Shiro框架中,`三简单扩展-shiro使用规范`这部分内容主要讲述了如何自定义 Realm。Realm 是Shiro中的核心概念,它负责与应用程序的特定安全存储进行交互,比如数据库、LDAP服务器等,用于实现身份验证(Authentication)和授权(Authorization)。在示例中,创建了一个名为 `MyRealm` 的自定义 Realm,它继承自 `AuthorizingRealm` 类。这个类是Shiro提供的一种默认的 Realm 实现,用于处理授权信息。
自定义 Realm 的关键在于重写 `doGetAuthorizationInfo` 方法。在这个方法中,你需要根据用户的 PrincipalCollection(通常包含用户名)查询用户的所有资源,并将这些资源信息存储到 `AuthorizationInfo` 对象中。`AuthorizationInfo` 包含了用户的权限(Permissions)、角色(Roles)和其他对象权限(ObjectPermissions)。在这个例子中,使用了 `SimpleAuthorizationInfo` 类,它可以方便地设置字符串形式的权限和角色。
Shiro的入门学习手册中,详细列举了Shiro能做的几件事情,包括用户验证、访问控制、Session管理、多数据源支持、单点登录(SSO)和“RememberMe”服务。Shiro的四个核心组件分别是:
1. 身份验证(Authentication):验证用户的身份,即“登录”过程。
2. 授权(Authorization):根据用户的角色和权限决定其对资源的访问权限。
3. 会话管理(SessionManagement):Shiro可以在任何环境中提供Session支持,包括CS(客户端-服务器)程序。
4. 加密(Cryptography):简化复杂的密码加密操作。
此外,Shiro还提供了Web支持、缓存、多线程、测试、"RunAs"(模拟用户身份)和"RememberMe"服务等功能。`Subject` 是Shiro中与用户交互的主要接口,而`SecurityManager` 是整个框架的核心,负责协调各个模块。虽然我们在编程时主要与Subject交互,但SecurityManager在后台起着至关重要的作用。
Apache Shiro提供了一套全面的解决方案来处理应用程序的安全需求,通过自定义 Realm 可以灵活地适应各种数据存储和权限模型,从而实现对用户身份和权限的有效管理。
2018-01-18 上传
2013-05-02 上传
2017-04-26 上传
2021-05-28 上传
2017-11-19 上传
2024-01-01 上传
2018-11-15 上传
2019-03-09 上传
2015-08-12 上传
四方怪
- 粉丝: 28
- 资源: 2万+
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率