别拿默认配置当万金油:补上 Shiro 的权限控制底层逻辑

很多做 Java 业务开发的人,在项目里遇到需要加登录拦截或接口鉴权时,习惯性去网上扒一段 Spring Security 或者 Shiro 的配置代码,改改路径就跑起来了。真碰到需要自定义加密规则、动态接口权限校验或者多数据源认证时,直接两眼一抹黑。这门课解决的就是只会粘贴配置、不懂内部运转机制的问题。它不扯宏观的安全架构,专门针对 Shiro 框架的核心链路拆解。适合已经能熟练写 Spring Boot 或传统 SSM 代码、但在权限模块一直停留在“拿来主义”的开发者。如果你连 Servlet 的 Filter 都没弄明白,建议先补基础再看,因为这门课的节奏很快,默认你懂 Web 请求流转的基本原理。

核心链路拆解:从认证到授权怎么走完闭环

看这门课千万别按顺序从头刷,建议直接跳到 Realm 验证策略和自定义授权这两块。Shiro 的核心在于 Subject、SecurityManager 和 Realm 的交互。很多人写了几年代码都没搞懂,为什么自己写的 Realm 里返回了 SimpleAuthenticationInfo,最后还是校验失败。课程在这块花了不少时间,你要重点补的是凭证匹配器的内部机制。默认的匹配逻辑只做简单的字符串比对,实际业务里前端传 MD5、加盐或者做 RSA 加密,必须自己写 CredentialsMatcher。建议先看加密介绍,再倒回来看怎么把这个自定义 Matcher 塞进 Realm 里。配套练习方面,不要光看视频,自己起一个本地工程,把数据库里的密码改成加盐哈希,然后手写一个匹配器走通登录流程,这是检验有没有真懂的唯一标准。

Web 集成与过滤器扩展:把框架嵌进真实请求

脱离了 Web 环境,Shiro 就是个单纯的认证授权工具类。真正难的是它怎么和 HTTP 请求绑定。课程后半段讲 Filter 的部分是重点中的重点。Shiro 自带了一批权限拦截器,但在实际业务中,比如前后端分离项目要返回统一的 JSON 错误结构,或者需要做接口级的数据权限隔离,自带的根本不够用。你要重点补的是自定义过滤器的写法,搞清楚 onPreHandle 和 isLoginRequest 的调用时机。学完这部分,你应该能独立做这几件事:给任意一个 Spring MVC 项目接上 Shiro,实现基于角色的动态 URL 拦截;自己扩展过滤器拦截特定的 Ajax 请求并返回自定义状态码;在 JSP 或者前端模板里用 Shiro 的标签做按钮级别的显隐控制。资料里的示例代码不要直接复制,把核心的过滤链路自己敲一遍,改改拦截路径,看看报错日志,比干看几十分钟视频管用得多。

课程目录

1 第A1节---shiro介绍 (18:05)
2 第A2节---shiro的helloworld (29:31)
3 第A3节---shiro的realm-验证策略介绍 (43:58)
4 第A4节---shiro的授权 (47:18)
5 第A5节---shiro的自定义授权 (01:03:03)
6 第A6节---shiro加密介绍 (22:33)
7 第A7节---shiro的加密结合realm (25:06)
8 第A8节---自定义CredentialsMatcher (18:41)
9 第A9节---shiro的web集成 (31:08)
10 第A10节---shiro的filter介绍 (27:13)
11 第A11节---shiro的自定义过滤器 (16:38)
12 第A12节---shiro的jsp标签 (18:02)
13 第A13节---shiro的jsp自定义标签 (14:54)
14 第A14节---shiro的session管理 (23:36)
15 第A15节---shiro的session自定义 (12:07)
16 第A16节---shiro的session补充 (10:46)
17 第A17节---shiro的缓存管理 (13:42)
18 第A18节---shiro的spring的集成 (14:28)
19 第A19节---shiro的实战-需求背景-项目演示 (25:48)
20 第A20节---shiro的实战-代码讲解 (26:48)
21 第A21节---shiro的实战--测试演示 (39:33)