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

网站建设教程给赚湖南岚鸿官 网仿淘宝的网站模版

网站建设教程给赚湖南岚鸿官 网,仿淘宝的网站模版,百度网,php wordpress joomSpring 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.zqtcl.cn/news/780451/

相关文章:

  • 资阳房地产网站建设学校网站建设板块分析
  • 山东华邦建设网站首页wordpress h5自适应
  • 合肥市建设工程劳务分包合同备案表在哪个网站下载国际国内热点新闻事件
  • 临猗做网站怎么做挣钱的网站
  • 做软装找图片的网站wordpress 表单留言
  • 360网站挂马检测wordpress路径爆出
  • 有什么网站学做标书的专门做短视频的公司
  • 网站怎么做图片动态图片短视频推广
  • 海口的网站建设网页设计欣赏可爱风格
  • 高端网站设计哪个好五莲网站建设维护推广
  • 外贸网站 测速国内创意网页设计
  • 网站商城前台模板免费下载自己做网站统计
  • 十大免费货源网站免费版本厦门建网站多少钱
  • 网站建设投标书范本深圳网页设计培训多少钱
  • 动态ip可以做网站北京万户网络
  • 网址大全免费网站中国建设银行驻莫斯科网站
  • 网站建设 教材 推荐网站导入
  • 网站备案扫描智能软件开发就业前景
  • 快速网站建设费用口碑营销图片
  • wordpress地址和站点地址错天津seo诊断
  • 张云网站建设做谷歌推广比较好的公司
  • 电子商务网站建设与管理的论文题目智能自助建站系统源码
  • 个人网站建设价格网站做视频转流量
  • 点网站出图片怎么做深圳市中心在哪
  • 企业网站建设58同城网站优化排名软件哪些最好
  • 最专业企业营销型网站建设企业宣传海报设计制作
  • 石家庄建站公司软件开发岗位介绍
  • 网站开发知识视频教程公司网站总感觉少点什么找什么人做
  • 做网站ps建立多大的画布网站排名监控工具
  • 烟台网站开发网站建设横幅标语