Module bus.starter

Class WrapperConfiguration

java.lang.Object
org.miaixz.bus.starter.wrapper.WrapperConfiguration
All Implemented Interfaces:
org.springframework.boot.autoconfigure.web.servlet.WebMvcRegistrations

@EnableConfigurationProperties(WrapperProperties.class) public class WrapperConfiguration extends Object implements org.springframework.boot.autoconfigure.web.servlet.WebMvcRegistrations
XSS防护和请求/响应内容缓存配置类,用于配置Web请求的包装器和过滤器。 该类主要功能包括:
  • 配置请求和响应包装器,实现XSS防护和内容缓存
  • 自定义请求映射处理器,支持基于包名的URL前缀自动生成
  • 注册过滤器,对特定HTTP方法的请求进行包装处理
  • 配置Web MVC相关组件,如请求处理器和MVC配置器
 // 在application.yml中配置
 bus:
   wrapper:
     enabled: true  # 启用包装器
     order: -100   # 过滤器顺序
     base-packages:  # 需要自动生成URL前缀的包名
       - com.example.controller

 // 控制器类
 @RestController
 @RequestMapping("/user")
 public class UserController {
     // 实际访问路径会自动加上包名前缀,如 /example/user/info
     @GetMapping("/info")
     public UserInfo getUserInfo() {
         return userService.getUserInfo();
     }
 }
 
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • WrapperConfiguration

      public WrapperConfiguration()
  • Method Details

    • getRequestMappingHandlerMapping

      public org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping getRequestMappingHandlerMapping()
      获取自定义的请求映射处理器。

      该方法返回一个自定义的RequestMappingHandlerMapping实例, 用于处理请求映射的生成,支持基于包名的URL前缀自动生成。

      Specified by:
      getRequestMappingHandlerMapping in interface org.springframework.boot.autoconfigure.web.servlet.WebMvcRegistrations
      Returns:
      自定义的请求映射处理器
    • registrationBodyCacheFilter

      @Bean("registrationBodyCacheFilter") public org.springframework.boot.web.servlet.FilterRegistrationBean registrationBodyCacheFilter()
      注册请求体缓存过滤器。

      该方法创建并配置一个WrapperConfiguration.BodyCacheFilter过滤器,用于对特定HTTP方法的请求进行包装处理, 实现XSS防护和请求/响应内容缓存。

      Returns:
      配置好的过滤器注册Bean
    • requestHandler

      @Bean("supportRequestHandler") public SentinelRequestHandler requestHandler()
      创建请求处理器。

      该方法创建一个SentinelRequestHandler实例,用于处理请求。

      Returns:
      请求处理器实例
    • supportWebMvcConfigurer

      @Bean("supportWebMvcConfigurer") public org.springframework.web.servlet.config.annotation.WebMvcConfigurer supportWebMvcConfigurer()
      创建Web MVC配置器。

      该方法创建一个WebMvcConfigurer实例, 用于配置Web MVC相关组件。

      Returns:
      Web MVC配置器实例
    • forwardedHeaderFilter

      @Bean public org.springframework.boot.web.servlet.FilterRegistrationBean<org.springframework.web.filter.ForwardedHeaderFilter> forwardedHeaderFilter()
      注册 ForwardedHeaderFilter Bean。

      ForwardedHeaderFilter 是 Spring 框架提供的标准 Servlet Filter, 用于包装 HttpServletRequest 对象,使其 getScheme(), getServerName() 等方法 能够返回原始客户端的请求信息。

      Returns:
      FilterRegistrationBean 实例,用于向 Servlet 容器注册 Filter。