Spring 的 WebSecurityConfigurerAdapter 过滤器

CodeAstral
• 阅读 175

你需要一个 WebSecurityConfigurerAdapter 来对用户提供安全的校验,确保用户能够访问必要的资源。

一个基于 Spring Boot 的应用程序将会帮你完成安全的校验(通过在 HTTP 的基础授权上添加自己的 WebSecurityConfigurerAdapter)。

这个将会添加 过滤器链表的 Order = 0(这个是默认配置),同时将会保护所有的资源,除非你能够提供正确的配置。

注解 @EnableResourceServer 将会做同样的事情,但是过滤器链表的顺序默认是 Order = 3。

因此可以知道 WebSecurityConfigurerAdapter 和 ResourceServerConfigurerAdapter 都是Spring 使用的过滤器,用来对访问进行过滤的。

但是过滤的顺序是多少呢?

WebSecurityConfigurerAdapter 的 @Order(100)

Spring 的 WebSecurityConfigurerAdapter 过滤器-01")

如果我们想让WebSecurityConfigurerAdapter比ResourceServerConfigurerAdapter优先级高的话,只需要让前者的@Order值比后者的@Order值更低就行了。

@EnableResourceServer 的注解的 Order 是 3

Spring 的 WebSecurityConfigurerAdapter 过滤器-02")

在spring 的体系里Order值越小优先级越高,所以ResourceServerConfigurerAdapter优先级比另外一个更高,他会优先处理,而WebSecurityConfigurerAdapter会失效。

所以,在不同在上面 2 个定义的过滤器上面,如果你加了注解,会影响过滤器的调用顺序。

Spring 的 WebSecurityConfigurerAdapter 过滤器-03")

比如说这个注解,因为添加到代码中了,所以这个过滤器会被先调用。

https://www.ossez.com/t/spring-websecurityconfigureradapter/585

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
B站微服务框架Kratos详细教程(2)
背景在像微服务这样的分布式架构中,经常会有一些需求需要你调用多个服务,但是还需要确保服务的安全性、统一化每次的请求日志或者追踪用户完整的行为等等。你可能需要一个框架来帮助你实现这些功能。比如说帮你在一些关键路径的请求上配置必要的鉴权或超时策略。那样服务间的调用会被多层中间件所过滤并检查,确保整体服务的稳定性。设计目标
Stella981 Stella981
3年前
Apache Hadoop配置Kerberos指南
  通常,一个Hadoop集群的安全使用kerberos来进行保障。在启用Kerberos后,需要用户进行身份验证。用户通过验证后可以使用GRANT/REVOKE语句来进行基于角色的访问控制。本文介绍一下在CDH集群中如何配置kerberos。1.KDC安装和配置脚本  脚本install\_kerberos.sh可以完成kerberos服
Stella981 Stella981
3年前
Kerberos无约束委派的攻击和防御
 0x00前言简介当ActiveDirectory首次与Windows2000Server一起发布时,Microsoft就提供了一种简单的机制来支持用户通过Kerberos对Web服务器进行身份验证并需要授权用户更新后端数据库服务器上的记录的方案。这通常被称为Kerberosdoublehopissue(双跃点问题),
Stella981 Stella981
3年前
Spring Boot+Spring Security+JWT 实现 RESTful Api 权限控制
摘要:用springboot开发RESTfulAPI非常的方便,在生产环境中,对发布的API增加授权保护是非常必要的。现在我们来看如何利用JWT技术为API增加授权保护,保证只有获得授权的用户才能够访问API。一:开发一个简单的API在IDEA开发工具中新建一个maven工程,添加对应的依赖如下:1.<dependency
Stella981 Stella981
3年前
Spring Security使用详解2(基于内存的用户、URL权限配置 )
二、基于内存的用户、URL权限配置1、用户角色配置(1)我们可以通过自定义类继承WebSecurityConfigurerAdapter,从而实现对SpringSecurity更多的自定义配置。比如下面样例我们就配置了两个用户,以及他们对应的角色。注意:基于内存的用户配置在配置角色时不需要添加“ROLE\_”前缀,而
Wesley13 Wesley13
3年前
Java中的参数验证(非Spring版)
1\.Java中的参数验证(非Spring版)1.1.前言为什么我总遇到这种非正常问题,我们知道很多时候我们的参数校验都是放在controller层的传入参数进行校验,我们常用的校验方式就是引入下列的jar包,在参数中添加@Validated,并对Bean对象的参数做不
Easter79 Easter79
3年前
SpringBoot2.0高级案例(12):整合 SpringSecurity 框架,实现用户权限安全管理
一、Security简介1、基础概念SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring的IOC,DI,AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功
Wesley13 Wesley13
3年前
@RequestBody参数已经被读取,究竟是何原因?
不知道你们有没有对用户输入的东西进行过敏感校验,如果不进行校验,用户属于一些攻击脚本,那么我们的服务就挂逼啦!所以我们首先需要通过过滤器将用户的数据读出来进行安全校验,这里面涉及到一个动作,就是需要将用户的数据在过滤器中读出来,进行校验,通过之后再放行。问题如果我们的数据是get请求倒还好,但是如果是一些数据量比较大,我们需要通过postjs
Stella981 Stella981
3年前
SpringBoot2.0高级案例(12):整合 SpringSecurity 框架,实现用户权限安全管理
一、Security简介1、基础概念SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring的IOC,DI,AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功
融云IM即时通讯 融云IM即时通讯
7个月前
融云 IM 干货丨云存储的安全措施有哪些?
云存储的安全措施云存储的安全性是确保数据机密性、完整性和可用性的关键。以下是一些常见的云存储安全措施:1.访问控制与权限管理身份认证:通过密码、多因素认证(如短信验证码、生物识别等)确认用户身份,确保只有授权用户才能访问云存储数据。基于角色的访问控制(RB