本专栏在实战中使用Shiro,用最简单的代码、最常用的场景让你彻底掌握Shiro的用法,成为Shiro实战高手。本Shiro教程是全网最强的Shiro实战教程。
为什么本Shiro教程是全网最强?
自学精灵的特点
- 代码很全,下载一下源码压缩包,IDEA直接运行。
- 包含有无权限、认证、鉴权等多种功能的对比与测试
- 控制了认证(authentication)和鉴权(authorization),覆盖了常见的场景。
- 展示通过注解控制权限、通过URL控制权限等重要功能。
- 用的是Spring自带的等很稳定的工具。
- 图很详细,有一步一步的测试流程。
结果是:学完即可掌握权限控制,代码可以直接用于项目,自己可以独立完成用户管理项目!
其他资料的特点
- 代码不全,根本运行不起来。
- 不包含有无权限、认证、鉴权等多种功能的对比与测试。
- 只控制了认证(authentication)或鉴权(authorization),覆盖面太窄。
- 没有展示通过注解控制权限、通过URL控制权限等重要功能。
- 用的是一些bug很多的第三方库。
- 图很少,没有一步一步的测试流程。
- 代码无法直接用于项目,连个好demo都算不上。
结果是:学了等于白学,用不到项目里!
学完本专栏你将掌握的项目技能
- 使用Shiro整合JWT,用注解的方式控制用户权限(工作中常用,简单)
- 使用Shiro整合JWT,用url的方式控制用户权限(工作中常用,略复杂)
- 使用Shiro整合Session,用注解的方式控制用户权限(旧项目中常用)
- 使用Shiro整合Session,用redis控制用户权限(旧项目中常用)
学完上边的项目后,你可以独立地开发一个用户管理系统了!而用户管理系统一般是每个项目所必须的,是中高级Java开发必须掌握的。
学完本专栏你将能解答如下问题
- 用户的登录和退出接口怎么写?
- 用户的账号和密码怎么保存到数据库?密码如何加密?
- 如何控制用户登录的有效时间?比如:让用户登录2天后,必须重新登录,该怎么做?
- 有的接口允许匿名访问,有的必须登录才能访问,该怎么做?
- 登录之后一定就能访问所有接口了吗?
- 如果超级管理员有所有权限,订单管理员只能访问订单,产品管理员只能访问产品,该怎么做?
- 如果让你独立负责一个用户管理系统,你能完成吗?
本专栏的项目场景
本文假设做一个商城系统。角色如下
- admin(超级管理员):有所有权限
- 使用shiro通配符:*:*
- productManager(产品管理员):有product(产品)的所有权限
- product:add,product:delete,product:edit,product:view
- orderManager(订单管理员):有order(订单)的所有权限
- order:add,product:delete,product:edit,product:view
本专栏将带你体验项目的如下功能:
- 没有登录时只能访问允许匿名的接口,比如:登录
- 超级管理员登录后可以操作所有接口,比如:编辑产品、编辑订单
- 产品管理员登录后可以操作产品接口,比如:编辑产品,但不能操作订单接口,比如:编辑订单
- 订单管理员登录后可以操作订单接口,比如:编辑订单,但不能操作产品接口,比如:编辑订单
- 删除功能只有超级管理员能访问,产品管理员删不了产品,订单管理员也删不了订单
- 登录超时之后,无法访问接口。
项目实战
shiro用法是一个系列,如下:
请先
!