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<CryptoFilter> cryptoFilterRegistration(ApiDecryptProperties properties) {
|
FilterRegistrationBean<CryptoFilter> registration = new FilterRegistrationBean<>();
|
registration.setDispatcherTypes(DispatcherType.REQUEST);
|
registration.setFilter(new CryptoFilter(properties));
|
registration.addUrlPatterns("/*");
|
registration.setName("cryptoFilter");
|
registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE);
|
return registration;
|
}
|
}
|