首页 > 作文

Spring Security内置过滤器的维护方法

更新时间:2023-04-05 20:34:27 阅读: 评论:0

spring curity中的内置过滤器顺序是怎么维护的?我想很多开发者都对这个问题感兴趣。本篇我和大家一起探黑龙江招生讨下这个问题。

httpcurity包含了一个成员变量filterorderregistration,这个类是一个内置过滤器注册表。至于这些过滤器的作用,不是本文介绍的重点,有兴趣可以去看看filterorderregistration的源码。

内置过滤器的顺序

filterorderregistration维护了一个变量filtertoorder,它记录了类之间的顺序和上下之间的间隔步长。我们复制了一个filterorderregistration来直观感受一下过滤器的顺序:

打印结果:

我们可以看得出内置过滤器之间的位置是相对固定的,除了第一个跟第二个步长为200外,其它步长为100。

内置过滤器并非一定会生效,仅仅是预置了它们的排位,需要通过httpcurity的addfilterxxxx系列方法显式添加才行。

注册过滤器的逻辑

filterorderregistration提供了一个put方法:

从这个方法我们可以描写春天的古诗词得到几个结论:

内置的34个过滤器是有固定序号的,不可被改变。新加入的过滤器的类全限定名是不能和内置过滤器重复的。新加入的过滤器的顺序是可以和内置过滤器的顺序重复的。

获取已注册过滤器的顺序值

filterorderregistration还提供了一个getorder方法:

httpcurity维护两性知识过滤器的方法

接下来我们分析一下httpcurity维护过滤器的几个方法。

addfilteratofftof

addfilteratofftof是一个httpcurity的内置私有方法。filter是想要注册到defaultcurityfilterchain中的过滤器,offt是向右的偏移值,registeredfilter是已经注册到filterorderregistration的过滤器,而且registeredfilter没有注册的话会空指针。

务必记着registeredfilter一定是已注册入filterorderregistration的f入党培训实用教材ilter。

addfilter系列方法

这里以addfilterafter为例。

addfilterafter是将filter的位置置于afterfilter后一位,假如afterfilter顺序值为400,则filter顺序值为401。addfilterbefore和addfilterat逻辑和addfilterafter仅仅是偏移值的区别,这里不再赘述。

addfilter的方法比较特殊:

filter必须是已经注册到filterorderregistration的filter,这意味着它可能是内置的filter,也可能是先前通过addfilterbefore、addfilterat或者addfilterafter注册的非内置filter。

问题来了

之前看到一个问题,如果httpcurity注册两个重复序号的filtepaperedr会是怎么样的顺序呢?我们先来看下排序的机制:

看了下ordercomparator源码,其实还是通过数字的自然排序,数字越小越靠前。如果数字相同,索引越小越靠前。也就是同样的序号,谁先add到filters谁就越靠前。

到此这篇关于spring curity的内置过滤器是如何维护的的文章就介绍到这了,更多相关spring curity内置过滤器内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-05 20:34:25,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/f2ef021742b095c5430ad1c0aed3dac0.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Spring Security内置过滤器的维护方法.doc

本文 PDF 下载地址:Spring Security内置过滤器的维护方法.pdf

标签:过滤器   顺序   步长   方法
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图