缺什么补什么:别只会调登录接口不懂权限链路

很多转岗或者快速上手做业务的同学,遇到权限校验往往只会写个拦截器,或者硬编码判断用户角色。一旦项目要求做细粒度的资源级控制,或者要求密码加盐、会话管理、缓存提速,立马就卡壳。这门课解决的核心问题就是:帮你把 Shiro 这套老牌安全框架的底层执行链路彻底打通。它不讲花架子,直接针对你平时写认证授权时留下的烂摊子。适合已经能熟练写增删改查,但对安全管理只停留在“抄配置”阶段的同学。如果你连过滤器链和 Realm 的作用都分不清,建议立刻停下来补这块,别假装自己懂权限,线上出越权漏洞可不是闹着玩的。

怎么练:从单机跑通到 SSM 整合实战

看资料的时候别光跟着视频点头,必须动手敲。建议先看前五个基础模块,重点啃自定义 Realm 和加密算法。很多人用 Shiro 做密码加密只会调个 MD5,连盐值怎么生成、哈希迭代次数怎么配都不知道,这绝对不行。看完加密这块,你要能自己写出一个带盐值的加密验证实例。接着直接跳到 SSM 框架整合部分,这是这门课的重头戏。资料里给了整合思路,你要自己把 Spring、SpringMVC、MyBatis 和 Shiro 拼起来,实现从登录认证到授权拦截的完整闭环。练习时,把基于注解的授权和基于页面的授权都跑一遍,对比两者在拦截异常时的区别。最后别忘了配缓存框架,很多同学在压测时发现每次请求都查数据库拿权限,就是因为没配缓存。资料里的配置线索你要逐行敲进项目里,报错了先自己看日志排查过滤器链顺序。

学完能独立回答的几个硬核问题

  • Shiro 的认证和授权分别走哪条核心链路?Subject、SecurityManager 和 Realm 之间是怎么交互的?
  • 自定义 Realm 时, doGetAuthenticationInfo 和 doGetAuthorizationInfo 这两个方法分别在什么时机被触发?返回的对象里必须塞什么数据?
  • 在 SSM 整合实战里,如果用注解做权限控制,抛出的未授权异常被哪个拦截器捕获?怎么配置全局异常处理来返回友好的提示?
  • Shiro 集成缓存后,当管理员在数据库里修改了某个用户的角色,缓存里的旧权限怎么失效?

把这几个问题答利索了,这门课才算没白看。别追求什么高大上的架构,先把这些基础链路嚼碎了咽下去,遇到权限报错你才不至于抓瞎。

课程目录

1 shiro安全管理框架简介 (13:11)
2 shiro框架认证实例 (24:57)
3 自定义realm域的使用 (15:22)
4 加密算法实例 (08:34)
5 shiro中加密算法的应用 (17:32)
6 通过shiro配置文件授权 (19:59)
7 通过shiro自定义域授权 (16:02)
8 整合spring+springMVC+mybatis框架 (23:01)
9 ssm框架实现登录功能 (13:15)
10 ssm框架中整合shiro框架 (23:51)
11 实现shiro登录认证功能 (28:55)
12 实现shiro的授权功能 (29:17)
13 shiro基于注解方式的授权 (20:38)
14 shiro基于jsp页面的授权 (14:09)
15 shiro实现退出功能 (08:22)
16 shiro集成缓存框架 (20:58)
17 shiro的session管理 (06:13)
18 springboot集成thymeleaf模板引擎 (11:55)
19 springboot框架整合shiro框架 (26:03)
20 shiro连接数据实现动态登录和列表显示 (15:02)
21 shiro权限过滤器设置 (18:55)
22 Thymeleaf集成shiro自定义权限标签的使用 (11:54)