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

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


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


shiro认证和授权

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


认证之后马上执行授权

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


解决方案

在页面增加如下代码

var flag = [[${@permission.hasPermi('system')}]];

image.png


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

image.png

image.png


相关文章
|
7月前
|
数据库
shiro认证和授权
shiro认证和授权
58 3
|
Java
08 Shrio 授权的三种方式
08 Shrio 授权的三种方式
44 1
11 Shrio 授权流程
11 Shrio 授权流程
37 0
|
Java Maven 数据安全/隐私保护
基于Session方式深入了解认证授权 1
基于Session方式深入了解认证授权
90 0
|
安全 前端开发 Java
基于Session方式深入了解认证授权 2
基于Session方式深入了解认证授权
60 0
|
Java 数据安全/隐私保护
【Shiro】1、Shiro实现登录授权认证功能(中)
之前在 SSM 项目中使用过 shiro,发现 shiro 的权限管理做的真不错,但是在 SSM 项目中的配置太繁杂了,于是这次在 SpringBoot 中使用了 shiro,下面一起看看吧
136 0
|
Java 数据安全/隐私保护
【Shiro】1、Shiro实现登录授权认证功能(下)
之前在 SSM 项目中使用过 shiro,发现 shiro 的权限管理做的真不错,但是在 SSM 项目中的配置太繁杂了,于是这次在 SpringBoot 中使用了 shiro,下面一起看看吧
138 0
|
安全 Java 数据库连接
【Shiro】1、Shiro实现登录授权认证功能(上)
之前在 SSM 项目中使用过 shiro,发现 shiro 的权限管理做的真不错,但是在 SSM 项目中的配置太繁杂了,于是这次在 SpringBoot 中使用了 shiro,下面一起看看吧
319 0
|
存储 安全 前端开发
你还不了解基于session的授权认证吗?
在漫长的开发过程中,权限认证是一个永恒不变的话题,随着技术的发展,从以前的基于sessionId的方式,变为如今的token方式。session常用于单体应用,后来由于微服务的兴起,分布式应用占了很大的一部分。本文将为大家介绍基于session的单体应用授权认证方式。后续会介绍基于token的认证方式。
261 0
|
缓存 数据库 数据安全/隐私保护
Shiro自定义Realm实现认证和授权(五)上
Shiro自定义Realm实现认证和授权(五)
352 0
Shiro自定义Realm实现认证和授权(五)上