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

怎么做物物交换网站广东病毒感染最新消息

怎么做物物交换网站,广东病毒感染最新消息,做八年级题目的网站,招聘网站做沙龙Spring Security过滤器基础 过滤器链工作原理 在Spring Security架构中,过滤器链(Filter Chain)是安全机制的核心实现方式。当HTTP请求到达时,会依次通过一系列具有明确顺序的过滤器。例如认证过滤器会拦截请求并将认证职责委托给授权管理器。若需要在认证前执行特定逻辑…

Spring Security过滤器基础

过滤器链工作原理

在Spring Security架构中,过滤器链(Filter Chain)是安全机制的核心实现方式。当HTTP请求到达时,会依次通过一系列具有明确顺序的过滤器。例如认证过滤器会拦截请求并将认证职责委托给授权管理器。若需要在认证前执行特定逻辑,只需在认证过滤器之前插入自定义过滤器即可。

Spring Security的过滤器属于典型的HTTP过滤器,通过实现jakarta.servlet.Filter接口来创建。与其他HTTP过滤器相同,开发者需要重写doFilter()方法来实现业务逻辑。该方法包含三个关键参数:

  • ServletRequest:封装HTTP请求对象,用于获取请求详情
  • ServletResponse:封装HTTP响应对象,用于修改返回给客户端的响应内容
  • FilterChain:代表过滤器链,用于将请求传递给链中的下一个过滤器

Jakarta EE规范变更

从Spring Boot 3开始,Jakarta EE正式取代了原有的Java EE规范。这一变更导致部分包路径前缀从javax变更为jakarta。例如:

// 旧版Java EE规范
import javax.servlet.Filter;// 新版Jakarta EE规范  
import jakarta.servlet.Filter;

该变更影响了FilterServletRequestServletResponse等核心接口的包路径,开发者在迁移项目时需要特别注意。

内置过滤器示例

Spring Security提供了多个预置过滤器实现,以下是典型示例:

// HTTP基础认证过滤器
BasicAuthenticationFilter 
// CSRF防护过滤器(第9章详解)  
CsrfFilter
// CORS授权规则过滤器(第10章详解)
CorsFilter

过滤器链的长度会根据应用配置动态变化。例如调用HttpSecurityhttpBasic()方法时,系统会自动将BasicAuthenticationFilter实例加入过滤器链。

过滤器顺序机制

过滤器的执行顺序由order值决定,开发者可以通过以下方式控制位置:

  1. 相对位置插入:在已知过滤器前后插入
  2. 绝对顺序指定:直接定义order数值

当多个过滤器具有相同order值时,其执行顺序无法保证。以下是添加过滤器的典型代码示例:

@Configuration
public class ProjectConfig {@Beanpublic SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {http.addFilterBefore(new CustomFilter(), BasicAuthenticationFilter.class).authorizeRequests(c -> c.anyRequest().permitAll());return http.build();}
}

核心方法实现

自定义过滤器需要实现doFilter()方法的核心逻辑,例如请求头校验:

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {HttpServletRequest httpRequest = (HttpServletRequest) request;String header = httpRequest.getHeader("Request-Id");if(header == null) {((HttpServletResponse)response).setStatus(400);return;}chain.doFilter(request, response);
}

该示例会检查请求是否包含Request-Id头,缺失时返回400状态码,否则继续执行后续过滤器。

Spring Security内置过滤器详解

基础认证过滤器

BasicAuthenticationFilter是处理HTTP基础认证的核心组件,当应用启用httpBasic()配置时,该过滤器会自动加入过滤器链。其工作流程包括解析Authorization请求头中的Base64凭证,并将认证请求委托给AuthenticationManager处理。

// 启用HTTP基础认证的配置示例
@Configuration
public class SecurityConfig {@BeanSecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception {http.httpBasic().and().authorizeRequests().anyRequest().authenticated();return http.build();}
}

CSRF防护机制

CsrfFilter提供跨站请求伪造防护功能,其核心实现原理包括:

  1. 对非安全HTTP方法(POST/PUT/DELETE等)进行令牌验证
  2. 自动生成并验证_csrf参数
  3. 支持通过Cookie或Session存储令牌

可通过以下方式定制配置:

http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()).ignoringAntMatchers("/api/public/**");

CORS授权控制

CorsFilter实现跨域资源共享策略,主要处理以下请求头:

  • Access-Control-Allow-Origin
  • Access-Control-Allow-Methods
  • Access-Control-Allow-Headers
  • Access-Control-Max-Age

典型配置示例:

@Bean
CorsConfigurationSource corsConfigurationSource() {CorsConfiguration config = new CorsConfiguration();config.setAllowedOrigins(Arrays.asList("https://domain.com")
http://www.dtcms.com/wzjs/324160.html

相关文章:

  • 网站制作教程 百度文库seo成创网络
  • 宜昌哪有有做网站的网络推广教程
  • 中石化网站是哪个公司做的近期国内新闻热点事件
  • 苹果公司网络营销方式seo案例分析方案
  • 网站建设市场需求分析南宁推广软件
  • 市北区开发建设局 网站百度链接提交收录入口
  • 网站下要加个备案号 怎么做鹤壁网站seo
  • 扬中市住房和城乡建设局网站seo建站收费地震
  • 每种类型的网站应该选择怎样的web服务器长沙岳麓区
  • 杭州网站建设及推广长沙专业做网站公司
  • 精品资源共享课网站建设 碧辉腾乐seo软文是什么
  • 做设计找图片的网站全网营销有哪些平台
  • 海南网站备案广告营销策划方案模板
  • 网站地址地图怎么做郑州网站推广方案
  • 用二级域名做网站关键词在线听免费
  • 最新军事战争新闻消息seo外链在线工具
  • 网站点赞怎么做网络推广哪家好
  • 查看自己网站访问量seo技术培训教程视频
  • dedeseo网站sem网络营销
  • 长春网站优化策略足球世界排名
  • 单页网站对攻击的好处核心关键词是什么意思
  • 公司注册网站官网2023年新冠疫情最新消息
  • 网站建设策划师重庆seo小潘大神
  • 网站关键词在哪里添加线上推广策划方案范文
  • 互联网站建设机构软文推广营销平台
  • 张家港外贸网站设计外媒头条最新消息
  • ppt下载网站哪个好汉川seo推广
  • 潍坊住房和城乡建设厅网站电话网站超级外链
  • 做知识产权服务的网站域名状态查询工具
  • 直销公司查询东营网站seo