Shiro User Manual-Architecture

1. Overview
Shiro的设计目标是通过直观而简易的API,简化应用安全的操作。Shiro的核心设计思想模型化了应用安全性的问题:谁在与应用进行交互。软件应用都是基于用例设计的。当你在设计用户接口或服务API时,都是基于用户如何跟软件交互的基础上。比如:如果当前和系统交互的用户已登录,就显示查看用户信息的按钮,否则显示登录按钮。这个例子表明,应用都是为了满足客户的需求,即便当前交互的"用户"是其他软件系统。Shiro通过其内部设计对应了这些概念。

2. High-Level Overview
Shiro有3个核心概念:Subject,SecurityManager和Realms。下面的图表描述了这三个组件间的交互:
[img]http://dl.iteye.com/upload/attachment/0083/1779/5b47e2be-d3f1-37d0-8b4d-5bc69d2e31fd.png[/img]
1. Subject
Subject本质上为当前执行用户的安全相关视图。而"User"通常表示人,这里的Subject可以是人,也可以是第三方服务,后台账户,定时服务或任何其他与应用交互的事物。
2. SecurityManager
SecurityManager是Shiro框架的核心,协调着所有安全组件。当配置好SecurityManager和其内部组件后,应用开发人员就只和Subject API交互。需要注意的是,与Subject的交互,最终都将被转换为SecurityManager的操作。
3. Realms
Realms是Shiro和应用数据的桥梁,比如用户执行认证,授权时,Shiro就会查找配置的Realms,进行用户的验证和授权。Shiro内置了很多Realms实现,比如LADP,关系型数据库,INI文件和properties文件等。
和其他组件一样,SecurityManager管理着Realms如何获取用户数据和标识信息。

3. Detailed Architecture
下面图表描述了Shiro的核心概念:
[img]http://dl.iteye.com/upload/attachment/0083/1825/8388e94a-3d4b-3dd0-b7f9-4378a9fa9680.png[/img]
1. Subject(org.apache.shiro.subject.Subject)
当前和应用交互的安全实体视图(可以是用户,第三方服务,定时服务等)
2. SecurityManager(org.apache.shiro.mgt.SecurityManager)
Shiro框架的核心,协调着所有组件。
3. Authenticator(org.apache.shiro.authc.Authenticator)
用户认证组件,负责用户的认证操作。当用户登录时,实际上是Authenticator和每个Realms进行交互。
1. Authentication Strategy(org.apache.shiro.authc.pam.AuthenticationStrategy)
当配置了多个Realm时,由Authentication Strategy决定如何进行认证。
4. Authorizer(org.apache.shiro.authz.Authorizer)
用户权限组件,控制用户的访问权限。
5. SessionManager(org.apache.shiro.session.mgt.SessionManager)
管理用户Session。Shiro提供了一个内部Session,可以在任何环境下使用。
1. SessionDAO(org.apache.shiro.session.mgt.eis.SessionDAO)
执行Session的CRUD操作。
6. CacheManager(org.apache.shiro.cache.CacheManager)
缓存管理器,负责创建和管理缓存。由于Shiro可以通过数据源进行认证,授权,session管理等操作,缓存这些对象将提高执行的效率。支持流行的开源和企业级缓存产品。
7. Cryptography(org.apache.shiro.crypto.*)
crypto包提供了简单易用的加密,散列,编解码器的实现。
8. Realms(org.apache.shiro.realm.Realm)
Shiro与应用数据的桥梁。

4. The SecurityManager
Shiro鼓励以Subject为核心进行编程,因此应用开发人员很少会与SecurityManager打交道。但是,了解SecurityManager是如何工作的,对于配置一个应用非常重要。

5. Design
SecurityManager协调着所有组件,管理着所用应用的状态,包括:
1. Authentication(认证)
2. Authorization(授权)
3. Session Management(Session管理)
4. Cache Management(缓存管理)
5. Realm coordination(协调Realm)
6. Event propagation(事件传播)
7. "Remember Me" Services(记忆服务)
8. Subject creation(Subject创建)
9. Logout(注销)
等。
为了简化配置,达到灵活性配置的目的,Shiro的实现都高度的模块化。SecurityManager作为一个轻量级的容器,将大部分的工作都委托给其内部组件。尽管组件执行着真正的逻辑,但是SecurityManager知道如何正确的协调它们。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
大学生在线租房平台管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、报修评价管理、字典管理、房东管理、房屋管理、房屋收藏管理、房屋留言管理、房屋租赁管理、租房论坛管理、公告信息管理、留言板管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生在线租房平台管理系统可以提高大学生在线租房平台信息管理问题的解决效率,优化大学生在线租房平台信息处理流程,保证大学生在线租房平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理大学生在线租房平台信息,包括房屋管理,培训管理,报修管理,薪资管理等,可以管理公告。 房屋管理界面,管理员在房屋管理界面中可以对界面中显示,可以对房屋信息的房屋状态进行查看,可以添加新的房屋信息等。报修管理界面,管理员在报修管理界面中查看报修种类信息,报修描述信息,新增报修信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值