前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shiro登录认证后不执行授权doGetAuthorizationInfo的解决

shiro登录认证后不执行授权doGetAuthorizationInfo的解决

作者头像
六月的雨在Tencent
发布2024-03-28 19:59:08
5670
发布2024-03-28 19:59:08
举报
文章被收录于专栏:CSDN

shiro认证和授权

用户登录成功之后,完成shiro的doGetAuthenticationInfo认证,但是登录认证之后shiro并不会马上执行授权doGetAuthorizationInfo,而是待用户访问的目标资源或者方法需要权限的时候才会调用doGetAuthorizationInfo进行授权。

认证之后马上执行授权

因为项目需要,在shiro登录认证之后需要马上执行doGetAuthorizationInfo进行授权,后来在网上找了大量的方法均为实现或者实现效果不理想,通过在登录认证成功之后跳转首页controller下对应方法加@RequiresRoles(“admin”)或者@RequiresPermissions(“system”)会出现由于登录用户没有admin角色或者system权限时无法执行doGetAuthorizationInfo导致授权失败

解决方案

在页面增加如下代码

代码语言:javascript
复制
var flag = [[${@permission.hasPermi('system')}]];

由于springboot项目页面采用Thymeleaf模板引擎,通过页面调用java判断是否有当前请求资源即首页的权限是否有,无需接收返回值即可触发doGetAuthorizationInfo验证当前资源权限是否有。故在页面引入此行代码即可解决shiro登录认证后即刻执行授权方法的问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • shiro认证和授权
  • 认证之后马上执行授权
  • 解决方案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档