ShiroRealm|学习笔记

简介: 快速学习 ShiroRealm

开发者学堂课程【Java 面试疑难点串讲 3:开发工具及框架ShiroRealm】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/26/detail/558


ShiroRealm

ShiroRealm 机制

Realm 是几乎所有的认证授权框架都具备的一个概念,那么所谓的 Realm 本身有两层含义:

进行用户的认证处理:主要是进行用户名或密码的判断,同时还可以判断出该用户是否被锁定;

用户的授权处理:进行角色或权限认证,而且这里面的认证所需要的就是根据用户名查询角色或权限的标记。于是在 Realm 里面就有一个容易混淆的概念了:Shiro中的 Session 与 HttpSession 的关系是什么?

如果说你现在使用的不是 WEB 程序,而是一个 Java 程序,那么 Shiro 中的认证与授权依然有效。

所以就可以得出一个结论: Shiro 有一套自己维护的 “Session” 机制(不等同于HttpSession)

如果要是在 WEB 中应用,实际上就表示该 ShiroSession 要结合 HttpSession 一起使用,也就是说在 ShiroSession 中保存的内容在 WEB 容器里面实质上是保存在了HttpSession 里面。

理解为 HttpSession 中存在有一个指定的 Shiro 属性。但是 Shiro 在设计的时候又考虑到了用户的使用习惯,所以对于一些用户的身份信息,那么会将这些身份的信息保存在 Session 里面,用户也可以直接利用 session 属性获得相关的身份信息。

不过对于授权处理需要有一些特殊的处理方式

授权的操作在实际检测之中有两类:

实时授权检测:

你现在修改了一个用户的角色或权限之后该配置立即生效,而且立即影响到已登录的用户;但是这样的操作需要频繁进行数据库的查询处理,所以一般不建议使用;

非实时授权检测:

因为用户的角色和权限几乎很少会被改动,所以这样频繁的进行数据库的查询性能会变差,正是因为如此,在实际的开发之中,会考虑在用户第一次使用角色和权限的时候会将数据信息查询出来,如果是单节点会将授权信息保存在内存里面(EHCache),如果是分布式集群,会将这些信息保存在 Redis 里面

总之就一个原则:不要在每一次进行用户授权检测的时候重复查询数据库即可。  

总结:

ShiroRealm 有一套自己的 Session,在  WEB 中该 Session 会在 HttpSession 里面保存数据,但是用户看不见这些。

有的授权处理一定要使用到缓存,否则会影响你的程序性能。

相关文章
|
存储 数据采集 搜索推荐
旅游推荐系统
旅游推荐系统
963 0
|
存储 编译器 C++
【C++航海王:追寻罗杰的编程之路】C++11(二)
【C++航海王:追寻罗杰的编程之路】C++11(二)
123 0
|
缓存 负载均衡 网络协议
译|A scalable, commodity data center network architecture(三)
译|A scalable, commodity data center network architecture(三)
238 0
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
934 0
|
测试技术 API 数据库
Android的Testing和Instrumentation
Android提供了一系列强大的测试工具,它针对Android的环境,扩展了业内标准的JUnit测试框架。尽管你可以使用JUnit测试Android工程,但Android工具允许你为应用程序的各个方面进行更为复杂的测试,包括单元层面及框架层面。
1191 0
|
5天前
|
云安全 人工智能 算法
以“AI对抗AI”,阿里云验证码进入2.0时代
三层立体防护,用大模型打赢人机攻防战
1334 4
|
2天前
|
存储 弹性计算 应用服务中间件
2026年阿里云服务器新手租用全流程完整步骤教程(最新版)
2026年阿里云服务器新手租用全流程完整步骤教程,阿里云服务器提供自定义租用、一键租用、云市场租用和活动租用四种核心方式,适配不同配置需求、技术能力和预算场景。无论是需要精准配置的专业用户,还是追求快速部署的新手,都能找到合适的租用方案。以下是详细的适用场景和操作流程,助力高效上云。
268 146
|
6天前
|
人工智能 Rust 运维
这个神器让你白嫖ClaudeOpus 4.5,Gemini 3!还能接Claude Code等任意平台
加我进AI讨论学习群,公众号右下角“联系方式”文末有老金的 开源知识库地址·全免费
|
2天前
|
弹性计算 固态存储 大数据
2026年阿里云服务器租用费用_阿里云最新轻量、ECS、GPU云服务器价格表
2026年阿里云服务器租用费用多少钱?小编通过查询全网最新关于阿里云服务器租用价格的资料,整理了今年最新的云服务器租用价格表,包括轻量应用服务器、云服务器ECS和GPU服务器。现在最新阿里云服务器租用费用价格表,轻量2核2G轻量服务器一年68元,折合5.6元1个月,新老用户同享99元一年服务器,2核4G5M服务器ECS优惠价199元一年(企业专享),2核4G4M轻量服务器298元一年,4核8G服务器955元一年,4核16G10M服务器70元1个月、210元3个月,8核32G服务器160元1个月、480元3个月,整理2026阿里云服务器租用费用价格表,包括一年优惠价格、一个月和1小时收费明细表:
221 152