关于shiro拦截器filterChainDefinitions的设置及使用过程源码分析

shiro源码分析,查了些资料,针对于在shiro框架中设置filterChainDefinitions遇到的小问题,做一下分析备忘记录。

问题描述:
在设置filterChainDefinitions的时候,如果/k/**设置在/k/index之前,那么/k/index将不会生效,有规则说: 拦截器的优先级是从上到下,从左到右,如果有匹配的拦截器就会阻断并返回。

设置:
1、ShiroFilterFactoryBean.setFilterChainDefinitions方法,获取基本参数,转化为Section键值对,'='左边为键,右边为值,存到filterChainDefinitionMap中,此时用的是LinkedHashMap,有序的,所以过滤器的生效有着先后顺序
2、调用ShiroFilterFactoryBean.getObject方法(ShiroFilterFactoryBean是实现了FactoryBean<T>接口的Bean,根据该Bean的ID从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,所以spring在获取ShiroFilterFactoryBean时,返回的是ShiroFilterFactoryBean的getObject()方法)
3、方法createInstance中ÿ
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shiro拦截有多种种类。根据引用中的信息,Shiro内置了很多默认的拦截,具体可参考DefaultFilter枚举拦截,包括身份验证相关的拦截和授权相关的拦截,还有其他拦截。在Spring配置文件中,可以通过配置shiroFilter来使用这些拦截。权限配置的方式是通过filterChainDefinitions来指定哪些页面需要受保护,以及访问这些页面需要的权限。其中,anon表示可以被匿名访问,authc表示必须认证后才能访问,logout表示登出,roles表示角色过滤。中的信息,我们还可以使用INI文件来配置拦截,并指定拦截的优先级。 此外,还可以通过实例工厂类FilterChainDefinitionMapBuilder来构建拦截链的定义映射。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Shiro系列九:拦截](https://blog.csdn.net/lizhiqiang1217/article/details/91127652)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [SpringBoot:集成Shiro拦截配置](https://blog.csdn.net/weixin_45915206/article/details/120043669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值