Shiro - Shiro配合SpringBoot的使用

一、核心组件:

1.Subject(门面):代表当前的“用户“,与当前应用程序交互,委托给SecurituManager处理。
2.SecurityManager(实际执行者):Shiro的核心,负责与其他组件进行交互。
3.Realm(仓库):SecurityManager从Realm中获取安全数据(用户、角色、权限)。

二、帮助理解Shiro流程的代码

1.前后端交互例子
(1) Controller层的登录认证操作:
先获取Subject,在将封装用户数据到token,执行登录验证方法Subject.login(token)(可在下面代码中看见)
(2) 前端页面:
对增加操作的权限控制,当权限不足时,点击跳转403页面

<div shiro:hasPermission = "user:add">
<a href = "add">用户添加</a>
</div>

2.两个config配置文件
(1) ShiroConfig:
通过shiroFilterFactoryBean.setSecurityManager(securityManager)设置URL过滤器,例如设全部用户都可访问的url、权限不足进行拦截url、默认登录界面的url、权限不足跳转的url等。
与第二个配置文件UserRealm的关联、创建
与Thymeleaf的配合使用设置
(2) UserRealm(自己配置使用的配置类)
一为执行授权逻辑,根据数据库中的信息进行对角色的授权,先拿到用户信息,在根据用户信息查询到角色,在根据角色查询到权限,使用SimpleAuthorizationInfo进行处理。
二为执行认证逻辑,根据token(封装着用户的信息),进行账号密码的判断
3.代码(二的1.2点所说都是此代码)
https://github.com/maMengJiao001/springboot-shiro-help

三、具有RBAC(基于角色的访问控制)的Shiro示例代码

1.

在这里插入图片描述
用户、角色、权限作为基本类,和表对应,声明主键、唯一标识、外列键,建议将ManyToMany多对多的关系,指向单向调用,双向调用容易出问题。
2.代码
https://github.com/xiuhuai/Spring-Boot-Book/tree/master/10/ShiroJpaMysql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值