Module bus.vortex

Class AbstractFilter

java.lang.Object
org.miaixz.bus.vortex.filter.AbstractFilter
All Implemented Interfaces:
Filter, org.springframework.web.server.WebFilter
Direct Known Subclasses:
AuthorizeFilter, CipherFilter, FormatFilter, LimitFilter, PrimaryFilter

public abstract class AbstractFilter extends Object implements Filter
抽象过滤器基类,提供公共方法和模板方法模式 所有具体过滤器继承此类,实现 doFilterInternal 方法
Since:
Java 17+
Author:
Justubborn
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    checkParams(org.springframework.web.server.ServerWebExchange exchange)
    校验请求参数,确保必要参数存在且有效
    protected abstract reactor.core.publisher.Mono<Void>
    doFilter(org.springframework.web.server.ServerWebExchange exchange, org.springframework.web.server.WebFilterChain chain, Context context)
    内部过滤方法,由子类实现具体逻辑
    reactor.core.publisher.Mono<Void>
    filter(org.springframework.web.server.ServerWebExchange exchange, org.springframework.web.server.WebFilterChain chain)
    过滤器主逻辑,获取上下文并调用子类的内部过滤方法
    protected Assets
    getAssets(Context context)
    获取资产信息
    protected Context
    getContext(org.springframework.web.server.ServerWebExchange exchange)
    获取请求上下文
    protected Map<String,String>
    获取请求参数映射
    protected org.springframework.web.server.ServerWebExchange
    setContentType(org.springframework.web.server.ServerWebExchange exchange)
    设置默认 Content-Type(如果请求头缺失)

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AbstractFilter

      public AbstractFilter()
  • Method Details

    • filter

      public reactor.core.publisher.Mono<Void> filter(org.springframework.web.server.ServerWebExchange exchange, org.springframework.web.server.WebFilterChain chain)
      过滤器主逻辑,获取上下文并调用子类的内部过滤方法
      Specified by:
      filter in interface org.springframework.web.server.WebFilter
      Parameters:
      exchange - 当前的 ServerWebExchange 对象,包含请求和响应
      chain - 过滤器链,用于继续处理请求
      Returns:
      reactor.core.publisher.Mono<Void> 表示异步处理完成
    • doFilter

      protected abstract reactor.core.publisher.Mono<Void> doFilter(org.springframework.web.server.ServerWebExchange exchange, org.springframework.web.server.WebFilterChain chain, Context context)
      内部过滤方法,由子类实现具体逻辑
      Parameters:
      exchange - 当前的 ServerWebExchange 对象
      chain - 过滤器链
      context - 请求上下文
      Returns:
      reactor.core.publisher.Mono<Void> 表示异步处理完成
    • getContext

      protected Context getContext(org.springframework.web.server.ServerWebExchange exchange)
      获取请求上下文
      Parameters:
      exchange - ServerWebExchange 对象
      Returns:
      请求上下文
    • getAssets

      protected Assets getAssets(Context context)
      获取资产信息
      Parameters:
      context - 请求上下文
      Returns:
      资产信息
    • getRequestMap

      protected Map<String,String> getRequestMap(Context context)
      获取请求参数映射
      Parameters:
      context - 请求上下文
      Returns:
      请求参数映射
    • setContentType

      protected org.springframework.web.server.ServerWebExchange setContentType(org.springframework.web.server.ServerWebExchange exchange)
      设置默认 Content-Type(如果请求头缺失)
      Parameters:
      exchange - ServerWebExchange 对象
      Returns:
      更新后的 ServerWebExchange
    • checkParams

      protected void checkParams(org.springframework.web.server.ServerWebExchange exchange)
      校验请求参数,确保必要参数存在且有效
      Parameters:
      exchange - ServerWebExchange 对象
      Throws:
      org.miaixz.bus.core.lang.exception.BusinessException - 如果参数无效或缺失,抛出异常