当前位置: 首页 > news >正文

石家庄企业网站制作哪家好溧阳网站建设中心

石家庄企业网站制作哪家好,溧阳网站建设中心,知名企业名称,三维家设计新手教学教程Spring Security本质是一个过滤器链 过滤器链本质是责任链设计模型 1. HttpSecurity 【第五篇】深入理解HttpSecurity的设计-腾讯云开发者社区-腾讯云 在以前spring security也是采用xml配置的方式#xff0c;在http标签中配置http请求相关的配置#xff0c;如用户…Spring Security本质是一个过滤器链 过滤器链本质是责任链设计模型 1. HttpSecurity 【第五篇】深入理解HttpSecurity的设计-腾讯云开发者社区-腾讯云 在以前spring security也是采用xml配置的方式在http标签中配置http请求相关的配置如用户权限等。但是在SpringBoot项目中我们慢慢脱离了xml配置文件的方式在SpringSecurity中提供了HttpSecurity等工具类。 1.1. SecurityBuilder 该接口仅定义了Spring Security构建对象的接口方法是一个泛型接口泛型中指明需要创建的对象。 public interface SecurityBuilderO {/*** Builds the object and returns it or null.* return the Object to be built or null if the implementation allows it.* throws Exception if an error occurred when building the Object*/O build() throws Exception;} 1.2. AbstractSecurityBuilder 一个抽象实现类该类确保对象仅被创建一次。使用了AtomicBoolean原子类使该类在并发情况下也能保证正确性。 public abstract class AbstractSecurityBuilderO implements SecurityBuilderO {private AtomicBoolean building new AtomicBoolean();private O object;Overridepublic final O build() throws Exception {if (this.building.compareAndSet(false, true)) {this.object doBuild();return this.object;}throw new AlreadyBuiltException(This object has already been built);}public final O getObject() {if (!this.building.get()) {throw new IllegalStateException(This object has not been built);}return this.object;}protected abstract O doBuild() throws Exception;} 1.3. AbstractConfiguredSecurityBuilder 其内部了定义了一个枚举类将整个构建过程分为 5 种状态也可以理解为构建过程生命周期的五个阶段如下 private enum BuildState {UNBUILT(0),INITIALIZING(1),CONFIGURING(2),BUILDING(3),BUILT(4);private final int order;BuildState(int order) {this.order order;}public boolean isInitializing() {return INITIALIZING.order this.order;}/*** Determines if the state is CONFIGURING or later* return*/public boolean isConfigured() {return this.order CONFIGURING.order;}} 构建过程 Override protected final O doBuild() throws Exception {synchronized (this.configurers) {this.buildState BuildState.INITIALIZING;beforeInit(); //是一个预留方法没有任何实现init(); // 就是找到所有的 xxxConfigure挨个调用其 init 方法进行初始化this.buildState BuildState.CONFIGURING;beforeConfigure(); // 是一个预留方法没有任何实现configure(); // 就是找到所有的 xxxConfigure挨个调用其 configure 方法进行配置。this.buildState BuildState.BUILDING;// 是真正的过滤器链构建方法//但是在 AbstractConfiguredSecurityBuilder中 performBuild 方法只是一个抽象方法//具体的实现在 HttpSecurity 中O result performBuild();this.buildState BuildState.BUILT;return result;} } AbstractConfiguredSecurityBuilder类字段中保存了一个配置列表由HashMap存储了配置类和对应的配置列表提供了添加、移除配置的方法。 private final LinkedHashMapClass? extends SecurityConfigurerO, B, ListSecurityConfigurerO, B configurers new LinkedHashMap(); 2. SecurityConfigurer public interface SecurityConfigurerO, B extends SecurityBuilderO {void init(B builder) throws Exception;void configure(B builder) throws Exception;} SecurityConfigurerO, B: 这是接口的声明它指定了两个泛型参数。 O代表配置的目标对象例如配置安全性规则的目标对象。这个参数表示你要对哪种类型的对象进行配置例如Web安全性规则HttpSecurity或认证管理器AuthenticationManager等。B代表用于构建配置的构建器builder。这个参数表示你使用的构建器的类型通常是一个实现了SecurityBuilder接口的类用于构建和配置目标对象。 接口SecurityConfigurer定义了一种通用的配置模式用于配置各种不同类型的安全对象而泛型参数O和B允许它变得灵活并适用于不同的配置场景。当你实现SecurityConfigurer接口时你会为不同的安全配置提供具体的实现其中O表示你要配置的安全对象的类型B表示你要使用的构建器类型。
http://www.w-s-a.com/news/158283/

相关文章:

  • 什么网站专门做自由行的framework7做网站
  • 网页设计与网站建设书籍包头住房与城乡建设局网站
  • 重庆网站建设平台免费猎头公司收费收费标准和方式
  • 形象设计公司网站建设方案书打开一个不良网站提示创建成功
  • 网站手机页面如何做网站关键字 优帮云
  • 免费的黄冈网站有哪些下载软件系统软件主要包括网页制作软件
  • 企业微站系统重庆高端网站建设价格
  • 有没有做衣服的网站吗网站自适应开发
  • 青海省制作网站专业专业定制网吧桌椅
  • 网站开发的项目17岁高清免费观看完整版
  • 手机网站建设多少钱一个门网站源码
  • 重庆 网站开发天津住房和城乡建设厅官方网站
  • 泰安高级网站建设推广厦门高端网站建设定制
  • jsp网站开发引用文献手机seo排名
  • 创建一家网站如何创设计网页的快捷网站
  • 1688代加工官方网站h5开发教程
  • 静态网站源码下载网站怎么显示备案号
  • 网站代码设计网站开发维护任职要求
  • 长寿做网站的电话怎么快速刷排名
  • 上海市中学生典型事例网站邯郸全网推广
  • 厦门网站建设680元好男人的最好的影院
  • 石家庄网站建设设计产品设计专业就业前景
  • 网站移动排名做最好最全的命理网站
  • 网站怎么防黑客杭州市做外贸网站的公司
  • 网站推广公司认准乐云seo易语言做网站登录
  • 配色设计网站推荐网站下拉菜单重叠
  • 内容展示型网站特点在北京注册公司需要多少钱
  • h5网站源代码创意设计理念
  • 岳阳网站开发服务推广运营平台
  • 网站开发得多长时间湖南建设人力资源网证书查询