package org.dromara.common.encrypt.config; import jakarta.servlet.DispatcherType; import org.dromara.common.encrypt.filter.CryptoFilter; import org.dromara.common.encrypt.properties.ApiDecryptProperties; 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; /** * api 解密自动配置 * * @author wdhcr */ @AutoConfiguration @EnableConfigurationProperties(ApiDecryptProperties.class) @ConditionalOnProperty(value = "api-decrypt.enabled", havingValue = "true") public class ApiDecryptAutoConfiguration { @Bean public FilterRegistrationBean cryptoFilterRegistration(ApiDecryptProperties properties) { FilterRegistrationBean registration = new FilterRegistrationBean<>(); registration.setDispatcherTypes(DispatcherType.REQUEST); registration.setFilter(new CryptoFilter(properties)); registration.addUrlPatterns("/*"); registration.setName("cryptoFilter"); registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE); return registration; } }