[feat] IP白名单

This commit is contained in:
冰点 2024-06-17 17:20:08 +08:00
parent b0c7bf5751
commit 7f68819046

View File

@ -1,5 +1,7 @@
package org.ssssssss.magicapi.servlet.jakarta;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
@ -17,6 +19,7 @@ import org.ssssssss.magicapi.core.servlet.MagicRequestContextHolder;
import java.util.List;
@Configuration
@Slf4j
public class MagicJakartaServletConfiguration implements WebMvcConfigurer {
private final MagicAPIProperties properties;
@ -24,10 +27,10 @@ public class MagicJakartaServletConfiguration implements WebMvcConfigurer {
private final MagicJakartaCorsFilter magicCorsFilter = new MagicJakartaCorsFilter();
private final ObjectProvider<MagicJakartaWebRequestInterceptor> magicWebRequestInterceptorProvider;
private final WebIPLimitRequestInterceptor webIPLimitRequestInterceptor;
private final ObjectProvider<WebIPLimitRequestInterceptor> webIPLimitRequestInterceptor;
public MagicJakartaServletConfiguration(MagicAPIProperties properties, ObjectProvider<MagicJakartaWebRequestInterceptor> magicWebRequestInterceptorProvider , WebIPLimitRequestInterceptor webIPLimitRequestInterceptorProvider) {
public MagicJakartaServletConfiguration(MagicAPIProperties properties, ObjectProvider<MagicJakartaWebRequestInterceptor> magicWebRequestInterceptorProvider , ObjectProvider<WebIPLimitRequestInterceptor> webIPLimitRequestInterceptorProvider) {
this.properties = properties;
this.magicWebRequestInterceptorProvider = magicWebRequestInterceptorProvider;
this.webIPLimitRequestInterceptor = webIPLimitRequestInterceptorProvider;
@ -52,13 +55,18 @@ public class MagicJakartaServletConfiguration implements WebMvcConfigurer {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
resolvers.add(0,new MagicJakartaHttpServletRequest.ArgumentsResolver());
resolvers.add(0,new MagicJakartaHttpServletResponse.ArgumentsResolver());
}
resolvers.add(0,new MagicJakartaHttpServletResponse.ArgumentsResolver());}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(magicWebRequestInterceptorProvider.getObject()).addPathPatterns("/**");
registry.addInterceptor(webIPLimitRequestInterceptor).addPathPatterns(properties.getWeb()+"/**");
try {
WebIPLimitRequestInterceptor interceptor = webIPLimitRequestInterceptor.getObject();
registry.addInterceptor(interceptor).addPathPatterns(properties.getWeb() + "/**");
} catch (BeansException e) {
log.warn("初始化IP限制拦截器异常此功能没有开启");
}
}
@Bean