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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.boot.web.servlet.FilterRegistrationBean<org.springframework.web.filter.ForwardedHeaderFilter> 注册 ForwardedHeaderFilter Bean。org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping获取自定义的请求映射处理器。org.springframework.boot.web.servlet.FilterRegistrationBean注册请求体缓存过滤器。创建请求处理器。org.springframework.web.servlet.config.annotation.WebMvcConfigurer创建Web MVC配置器。Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.boot.autoconfigure.web.servlet.WebMvcRegistrations
getExceptionHandlerExceptionResolver, getRequestMappingHandlerAdapter
-
Constructor Details
-
WrapperConfiguration
public WrapperConfiguration()
-
-
Method Details
-
getRequestMappingHandlerMapping
public org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping getRequestMappingHandlerMapping()获取自定义的请求映射处理器。该方法返回一个自定义的
RequestMappingHandlerMapping实例, 用于处理请求映射的生成,支持基于包名的URL前缀自动生成。- Specified by:
getRequestMappingHandlerMappingin interfaceorg.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
创建请求处理器。该方法创建一个
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。
-