支持 #issues/I99KFB
This commit is contained in:
parent
345506d69a
commit
6727373057
@ -5,6 +5,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
@ -61,6 +62,8 @@ import org.ssssssss.magicapi.datasource.web.MagicDataSourceController;
|
||||
import org.ssssssss.magicapi.function.service.FunctionMagicDynamicRegistry;
|
||||
import org.ssssssss.magicapi.jsr223.LanguageProvider;
|
||||
import org.ssssssss.magicapi.modules.DynamicModule;
|
||||
import org.ssssssss.magicapi.plugin.simple.interceptor.IpLimitRequestInterceptor;
|
||||
import org.ssssssss.magicapi.servlet.jakarta.WebIPLimitRequestInterceptor;
|
||||
import org.ssssssss.magicapi.utils.Mapping;
|
||||
import org.ssssssss.magicapi.utils.WebUtils;
|
||||
import org.ssssssss.script.MagicResourceLoader;
|
||||
@ -87,7 +90,11 @@ import java.util.stream.Collectors;
|
||||
@Configuration
|
||||
@ConditionalOnClass({RequestMappingHandlerMapping.class})
|
||||
@EnableConfigurationProperties(MagicAPIProperties.class)
|
||||
@Import({MagicServletConfiguration.class, MagicJsonAutoConfiguration.class, ApplicationUriPrinter.class, MagicModuleConfiguration.class, MagicDynamicRegistryConfiguration.class})
|
||||
@Import({MagicServletConfiguration.class,
|
||||
MagicJsonAutoConfiguration.class,
|
||||
ApplicationUriPrinter.class,
|
||||
MagicModuleConfiguration.class,
|
||||
MagicDynamicRegistryConfiguration.class})
|
||||
@EnableWebSocket
|
||||
@AutoConfigureAfter(MagicPluginConfiguration.class)
|
||||
public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketConfigurer {
|
||||
@ -233,6 +240,27 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon
|
||||
return new DefaultMagicAPIService(resultProvider, properties.getInstanceId(), magicResourceService, requestMagicDynamicRegistry, functionMagicDynamicRegistry, properties.isThrowException(), properties.getPrefix() ,magicRequestContextHolder, applicationContext);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 注入API调用Service
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnProperty(prefix = "magic-api.web-iplimit", name = "enable", havingValue = "true", matchIfMissing = true)
|
||||
public WebIPLimitRequestInterceptor webIPLimitRequestInterceptor(@Value("${magic-api.web-iplimit.whitelist: }") String whitelist,@Value("${magic-api.web-iplimit.blacklist: }") String blacklist ) {
|
||||
WebIPLimitRequestInterceptor webIPLimitRequestInterceptor = new WebIPLimitRequestInterceptor();
|
||||
webIPLimitRequestInterceptor.setBlacklist(blacklist);
|
||||
webIPLimitRequestInterceptor.setWhitelist(whitelist);
|
||||
return webIPLimitRequestInterceptor;
|
||||
}
|
||||
@Bean
|
||||
@ConditionalOnProperty(prefix = "magic-api.api-iplimit", name = "enable", havingValue = "true", matchIfMissing = true)
|
||||
public IpLimitRequestInterceptor ipLimitRequestInterceptor(@Value("${magic-api.api-iplimit.whitelist: }") String whitelist,@Value("${magic-api.api-iplimit.blacklist: }") String blacklist ) {
|
||||
IpLimitRequestInterceptor ipLimitRequestInterceptor = new IpLimitRequestInterceptor();
|
||||
ipLimitRequestInterceptor.setBlacklist(blacklist);
|
||||
ipLimitRequestInterceptor.setWhitelist(whitelist);
|
||||
return ipLimitRequestInterceptor;
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册模块、类型扩展
|
||||
*/
|
||||
|
||||
@ -6,7 +6,6 @@ import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.context.annotation.ImportSelector;
|
||||
import org.springframework.core.type.AnnotationMetadata;
|
||||
import org.ssssssss.magicapi.servlet.javaee.MagicJavaEEServletConfiguration;
|
||||
|
||||
@Configuration
|
||||
@AutoConfigureBefore(MagicAPIAutoConfiguration.class)
|
||||
@ -31,10 +30,5 @@ public class MagicServletConfiguration {
|
||||
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@ConditionalOnClass(name = "javax.servlet.http.HttpServletRequest")
|
||||
@Import(MagicJavaEEServletConfiguration.class)
|
||||
static class JavaEEConfiguration{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,6 +22,10 @@ public class IpUtils {
|
||||
return ip == null ? processIp(remoteAddr) : ip;
|
||||
}
|
||||
|
||||
public static String getIP(Function<String, String> getHeader) {
|
||||
return getRealIP("", getHeader, null);
|
||||
}
|
||||
|
||||
private static String processIp(String ip) {
|
||||
if (ip != null) {
|
||||
ip = ip.trim();
|
||||
@ -45,4 +49,5 @@ public class IpUtils {
|
||||
private static boolean isUnknown(String ip) {
|
||||
return StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip.trim());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user