shiro触发doGetAuthorizationInfo方法的几种方式

简介: shiro触发doGetAuthorizationInfo方法的几种方式

什么情况下会触发shiro的授权检测呢?通常有以下三种方式:


方式一:代码中通过Subject对象主动调用权限校验

subject.hasRole(“admin”);

//或

subject.isPermitted(“admin”);

1

2

3

这种方式属于在代码中需要校验权限的时候主动调用,判断返回结果来确定是否通过。


方式二:通过注解的形式检查对用的方法请求

@RequiresRoles("admin")

1

这种方式通常用在Controller的方法上。


方式三:页面shiro标签

针对ftl等页面,可直接在页面中使用标签来来标注对应的请求。进入该页面时扫描到对应的标签进行权限校验。


<shiro:hasPermission name="item:update">

1

如果是jsp页面,在使用Shiro标签库前,首先需要在JSP引入shiro标签:


<%@ taglib prefix="shiro" uri="/WEB-INF/tlds/shiros.tld" %>

1

当加上shiro标签后,会与后台代码结合使用:需要继承AuthorizingRealm,

通过protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) 方法进行业务的处理。


相关文章

《还在亲手写Filter进行权限校验?尝试一下Shiro吧》


《不解释,全网最全Shiro认证与授权原理分析》



目录
相关文章
|
5月前
|
前端开发 Java 定位技术
生活小事件(SpringMVC主要的组件及作用和执行流程)
Spring MVC 的主要组件包括 DispatcherServlet(核心,请求调度)、HandlerMapping(URL 映射到处理器)、HandlerAdapter(统一执行处理器)、Handler(处理业务逻辑,通常为 @Controller 类)、ViewResolver(视图解析)和 View(渲染输出)。通过这些组件的协作,Spring MVC 实现了从接收请求到返回响应的流程,类似于警察处理交通违规的协调过程。
|
Java 数据安全/隐私保护 Spring
spring通过事件进行权限验证
spring通过事件进行权限验证
|
Java Spring
任何 bean 初始化回调前自定义逻辑
任何 bean 初始化回调前自定义逻辑
|
缓存 安全 Apache
2021年你还不会Shiro?----3.分析身份认证源码实现自定义Realm
我们已经知道无论我们是认证还是授权,数据的获取都是来源于Realm,Realm就相当于我们的datasource,在上一篇中我们使用的是用IniRealm来加载我们的配置文件shiro.ini,同时我们也说了ini只是临时解决方案,在实际的开发中是不可能把用户信息和权限信息放在ini文件中的,都是来源于数据库,那么系统提供的IniRealm就不能满足我们的需要了,我们就需要自定义Realm来实现真正的场景,事实上ini文件也只是apache为我们提供学习使用的策略,下面我们就来看下怎么自己定义一个Realm。
110 0
2021年你还不会Shiro?----3.分析身份认证源码实现自定义Realm
boot 中自定义shiro过滤器的拦截顺序
@boot 中filter SecurityUtils.getSubject()No SecurityManager accessible
330 0
boot 中自定义shiro过滤器的拦截顺序
|
存储 Java Maven
java使用过滤器和监听器防止用户重复登录
java使用过滤器和监听器防止用户重复登录
134 0
java使用过滤器和监听器防止用户重复登录
|
缓存 安全 网络安全
配置Shiro核心过滤器与相关配置
<!--anon 表示匿名访问,不需要认证以及授权--> <!--authc表示需要认证 没有进行身份认证是不能进行访问的--> <!--roles[admin]表示角色认证,必须是拥有admin角色的用户才行--> <!--user表示用户不一定已通过认证,只要曾被Shiro记住过登录状态的用户就可以正常发起请求,比如rememberMe--> <!--perms表示指定过滤规则,这个一般是扩展使用,不会使用原生的--> <!--port表示请求的URL端口验证--> <!--ssl表示安全的URL请求,协议为https--> <!--rest表示根据请求的方法,
|
缓存 NoSQL Java
TimedCache 带时间缓存工具类,附加监听回调 | Java工具类
TimedCache 带时间缓存工具类,附加监听回调 | Java工具类
TimedCache 带时间缓存工具类,附加监听回调 | Java工具类
|
SQL JSON Java
Mybaties(十五) 分页插件使用, 参数校验以及全局异常处理
这里是Mybaties中高级应用了, 基于Mybaties+Springboot实现分页, 参数校验以及全局异常(干货满满!!!)
|
SQL JSON Java
Mybaties分页插件使用, 参数校验以及全局异常处理
本文教你快速进行Mybaties分页插件使用, 参数校验以及全局异常处理