package cn.iocoder.yudao.framework.encrypt.config; import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; import cn.iocoder.yudao.framework.encrypt.core.filter.ApiEncryptFilter; import cn.iocoder.yudao.framework.web.config.WebProperties; import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import static cn.iocoder.yudao.framework.web.config.YudaoWebAutoConfiguration.createFilterBean; @AutoConfiguration @Slf4j @EnableConfigurationProperties(ApiEncryptProperties.class) @ConditionalOnProperty(prefix = "yudao.api-encrypt", name = "enable", havingValue = "true") public class YudaoApiEncryptAutoConfiguration { @Bean public FilterRegistrationBean apiEncryptFilter(WebProperties webProperties, ApiEncryptProperties apiEncryptProperties, RequestMappingHandlerMapping requestMappingHandlerMapping, GlobalExceptionHandler globalExceptionHandler) { ApiEncryptFilter filter = new ApiEncryptFilter(webProperties, apiEncryptProperties, requestMappingHandlerMapping, globalExceptionHandler); return createFilterBean(filter, WebFilterOrderEnum.API_ENCRYPT_FILTER); } }