From e07fe57317970759ff0e263c490efa2f46310918 Mon Sep 17 00:00:00 2001 From: Wenchao Gong Date: Sat, 30 Oct 2021 23:48:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AE=A1=E6=8E=A7=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=BB=93=E6=9E=84=E8=B0=83=E6=95=B4=EF=BC=8C=E6=8E=A5?= =?UTF-8?q?=E6=94=B6=E4=B8=8D=E5=88=B0=E9=80=9A=E7=9F=A5=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 17 ++++++++- .../com/ruoyi/common/constant/Constants.java | 10 +++++ .../ruoyi/common/constant/IscConstants.java | 21 +---------- ruoyi-extend/ruoyi-isc-gateway/pom.xml | 4 ++ .../ruoyi/gateway/config/GatewayConfig.java | 12 ++---- .../RedisRouteDefinitionRepository.java | 3 +- .../gateway/filter/CustomerGlobalFilter.java | 8 ++-- .../ratelimit/CustomerRedisRateLimiter.java | 11 +++--- .../com/ruoyi/gateway/utils/GatewayUtils.java | 19 +++------- .../gateway/utils/caching/CachingRule.java | 2 +- ruoyi-isc-parent/pom.xml | 33 +++++++++++++++++ ruoyi-isc-parent/ruoyi-isc-common/pom.xml | 30 +++++++++++++++ .../common/constant/IscGatewayContants.java | 31 ++++++++++++++++ .../isc/common/constant/IscRedisKeys.java | 19 ++++++++++ .../ruoyi/isc/common/utils/GatewayUtils.java | 30 +++++++++++++++ .../isc/common}/utils/beans/IscRule.java | 2 +- .../isc/common}/utils/beans/TopicMsg.java | 2 +- .../ruoyi-isc}/pom.xml | 6 ++- .../IscAppServiceApplyController.java | 0 .../controller/IscAppServiceController.java | 0 .../controller/IscApplicationController.java | 0 .../controller/IscServiceCateController.java | 0 .../isc/controller/IscServiceController.java | 0 .../com/ruoyi/isc/domain/IscAppService.java | 0 .../ruoyi/isc/domain/IscAppServiceApply.java | 0 .../com/ruoyi/isc/domain/IscApplication.java | 0 .../java/com/ruoyi/isc/domain/IscService.java | 0 .../com/ruoyi/isc/domain/IscServiceCate.java | 0 .../isc/domain/bo/IscAppServiceApplyBo.java | 0 .../ruoyi/isc/domain/bo/IscAppServiceBo.java | 0 .../ruoyi/isc/domain/bo/IscApplicationBo.java | 0 .../com/ruoyi/isc/domain/bo/IscAuditBo.java | 0 .../com/ruoyi/isc/domain/bo/IscServiceBo.java | 0 .../ruoyi/isc/domain/bo/IscServiceCateBo.java | 0 .../isc/domain/vo/IscAppServiceApplyVo.java | 0 .../ruoyi/isc/domain/vo/IscAppServiceVo.java | 0 .../ruoyi/isc/domain/vo/IscApplicationVo.java | 0 .../ruoyi/isc/domain/vo/IscServiceCateVo.java | 0 .../com/ruoyi/isc/domain/vo/IscServiceVo.java | 0 .../isc/mapper/IscAppServiceApplyMapper.java | 0 .../ruoyi/isc/mapper/IscAppServiceMapper.java | 0 .../isc/mapper/IscApplicationMapper.java | 0 .../isc/mapper/IscServiceCateMapper.java | 0 .../ruoyi/isc/mapper/IscServiceMapper.java | 0 .../service/IIscAppServiceApplyService.java | 0 .../isc/service/IIscAppServiceService.java | 0 .../isc/service/IIscApplicationService.java | 0 .../isc/service/IIscServiceCateService.java | 0 .../ruoyi/isc/service/IIscServiceService.java | 0 .../impl/IscAppServiceApplyServiceImpl.java | 9 +++-- .../impl/IscAppServiceServiceImpl.java | 15 ++++---- .../impl/IscApplicationServiceImpl.java | 0 .../impl/IscServiceCateServiceImpl.java | 0 .../service/impl/IscServiceServiceImpl.java | 15 ++++---- .../java/com/ruoyi/isc/utils/RouteUtils.java | 36 +++++++++--------- .../isc/utils/beans/IscFilterDefinition.java | 0 .../utils/beans/IscPredicateDefinition.java | 0 .../isc/utils/beans/IscRouteDefinition.java | 0 .../mapper/isc/IscAppServiceApplyMapper.xml | 0 .../mapper/isc/IscAppServiceMapper.xml | 0 .../mapper/isc/IscApplicationMapper.xml | 0 .../mapper/isc/IscServiceCateMapper.xml | 0 .../resources/mapper/isc/IscServiceMapper.xml | 0 .../com/ruoyi/isc/utils/beans/IscRule.java | 26 ------------- .../com/ruoyi/isc/utils/beans/TopicMsg.java | 37 ------------------- 65 files changed, 243 insertions(+), 155 deletions(-) create mode 100644 ruoyi-isc-parent/pom.xml create mode 100644 ruoyi-isc-parent/ruoyi-isc-common/pom.xml create mode 100644 ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/constant/IscGatewayContants.java create mode 100644 ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/constant/IscRedisKeys.java create mode 100644 ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/utils/GatewayUtils.java rename {ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway => ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common}/utils/beans/IscRule.java (92%) rename {ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway => ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common}/utils/beans/TopicMsg.java (94%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/pom.xml (76%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/controller/IscAppServiceApplyController.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/controller/IscAppServiceController.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/controller/IscApplicationController.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/controller/IscServiceCateController.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/controller/IscServiceController.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/IscAppService.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/IscAppServiceApply.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/IscApplication.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/IscService.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/IscServiceCate.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/bo/IscAppServiceApplyBo.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/bo/IscAppServiceBo.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/bo/IscApplicationBo.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/bo/IscAuditBo.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/bo/IscServiceBo.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/bo/IscServiceCateBo.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/vo/IscAppServiceApplyVo.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/vo/IscAppServiceVo.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/vo/IscApplicationVo.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/vo/IscServiceCateVo.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/domain/vo/IscServiceVo.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/mapper/IscAppServiceApplyMapper.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/mapper/IscAppServiceMapper.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/mapper/IscApplicationMapper.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/mapper/IscServiceCateMapper.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/mapper/IscServiceMapper.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/service/IIscAppServiceApplyService.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/service/IIscAppServiceService.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/service/IIscApplicationService.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/service/IIscServiceCateService.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/service/IIscServiceService.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/service/impl/IscAppServiceApplyServiceImpl.java (97%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/service/impl/IscAppServiceServiceImpl.java (95%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/service/impl/IscApplicationServiceImpl.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/service/impl/IscServiceCateServiceImpl.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/service/impl/IscServiceServiceImpl.java (94%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/utils/RouteUtils.java (88%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/utils/beans/IscFilterDefinition.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/utils/beans/IscPredicateDefinition.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/java/com/ruoyi/isc/utils/beans/IscRouteDefinition.java (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/resources/mapper/isc/IscAppServiceApplyMapper.xml (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/resources/mapper/isc/IscAppServiceMapper.xml (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/resources/mapper/isc/IscApplicationMapper.xml (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/resources/mapper/isc/IscServiceCateMapper.xml (100%) rename {ruoyi-isc => ruoyi-isc-parent/ruoyi-isc}/src/main/resources/mapper/isc/IscServiceMapper.xml (100%) delete mode 100644 ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscRule.java delete mode 100644 ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/TopicMsg.java diff --git a/pom.xml b/pom.xml index f199256bc..5f029dafe 100644 --- a/pom.xml +++ b/pom.xml @@ -215,6 +215,11 @@ ${spring-boot.version} + + org.redisson + redisson + ${redisson.version} + org.redisson redisson-spring-boot-starter @@ -276,6 +281,16 @@ + + com.ruoyi + ruoyi-isc-parent + ${ruoyi-vue-plus.version} + + + com.ruoyi + ruoyi-isc-common + ${ruoyi-vue-plus.version} + com.ruoyi ruoyi-isc @@ -302,7 +317,7 @@ ruoyi-demo ruoyi-extend ruoyi-oss - ruoyi-isc + ruoyi-isc-parent pom diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index c2cb29dcb..ad636ce04 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -143,4 +143,14 @@ public class Constants * LDAP 远程方法调用 */ public static final String LOOKUP_LDAP = "ldap://"; + + /** 待审核 */ + public static final String AUDIT_WAIT = "0"; + + /** 审核通过 */ + public static final String AUDIT_PASS = "1"; + + /** 审核驳回 */ + public static final String AUDIT_REJECT = "2"; + } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/IscConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/IscConstants.java index fe3c523f7..793140ed5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/IscConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/IscConstants.java @@ -2,16 +2,7 @@ package com.ruoyi.common.constant; public class IscConstants { - /** 待审核 */ - public static final String AUDIT_WAIT = "0"; - - /** 审核通过 */ - public static final String AUDIT_PASS = "1"; - - /** 审核驳回 */ - public static final String AUDIT_REJECT = "2"; - - /** 待审核 */ + /** 在线状态 在线 */ public static final String ONLINE_STATUS_ON = "1"; /** 申请类型 申请服务 */ @@ -22,14 +13,4 @@ public class IscConstants { /** 申请类型 申请修改 */ public static final String APPLY_TYPE_MODIFY = "2"; - - /** - * Gateway 路由信息Redis Key - */ - public static final String KEY_ROUTES = "ROUTES:"; - - /** - * Gateway 服务对应AK规则 - */ - public static final String KEY_RULES = "RULES:"; } diff --git a/ruoyi-extend/ruoyi-isc-gateway/pom.xml b/ruoyi-extend/ruoyi-isc-gateway/pom.xml index 4df6d0639..851b4665d 100644 --- a/ruoyi-extend/ruoyi-isc-gateway/pom.xml +++ b/ruoyi-extend/ruoyi-isc-gateway/pom.xml @@ -13,6 +13,10 @@ ruoyi-isc-gateway + + com.ruoyi + ruoyi-isc-common + org.springframework.cloud spring-cloud-starter-gateway diff --git a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/config/GatewayConfig.java b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/config/GatewayConfig.java index e8ba55e62..85cfe323f 100644 --- a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/config/GatewayConfig.java +++ b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/config/GatewayConfig.java @@ -5,14 +5,11 @@ import com.ruoyi.gateway.config.handler.GlobalErrorWebExceptionHandler; import com.ruoyi.gateway.config.provider.RedisRouteDefinitionRepository; import com.ruoyi.gateway.filter.CustomerGlobalFilter; import com.ruoyi.gateway.ratelimit.CustomerRedisRateLimiter; -import com.ruoyi.gateway.utils.beans.TopicMsg; import com.ruoyi.gateway.utils.caching.CachingRule; +import com.ruoyi.isc.common.utils.beans.TopicMsg; import lombok.extern.slf4j.Slf4j; import org.redisson.api.RTopic; import org.redisson.api.RedissonClient; -import org.redisson.client.codec.Codec; -import org.redisson.codec.SerializationCodec; -import org.redisson.codec.TypedJsonJacksonCodec; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler; import org.springframework.cloud.gateway.event.RefreshRoutesEvent; @@ -32,6 +29,8 @@ import org.springframework.lang.NonNull; import java.util.List; import java.util.function.Consumer; +import static com.ruoyi.isc.common.constant.IscGatewayContants.*; + /** * Gateway 配置文件 * @@ -41,9 +40,6 @@ import java.util.function.Consumer; @Slf4j @Configuration public class GatewayConfig implements ApplicationEventPublisherAware { - public static final Codec TOPIC_MSG_CODES_INSTANCE = new TypedJsonJacksonCodec(String.class, TopicMsg.class); - public static final String TOPIC_GATEWAY_REFRESH_ROUTE = "TOPIC_GATEWAY_REFRESH_ROUTE"; - public static final String TOPIC_GATEWAY_RULE = "TOPIC_GATEWAY_RULE"; public ApplicationEventPublisher publisher; private final RedissonClient client = SpringUtil.getBean(RedissonClient.class); @@ -105,7 +101,7 @@ public class GatewayConfig implements ApplicationEventPublisherAware { * @param consumer 自定义处理 */ public void subscribe(String channelKey, Class clazz, Consumer consumer) { - RTopic topic = client.getTopic(channelKey, new SerializationCodec()); + RTopic topic = client.getTopic(channelKey); topic.addListener(clazz, (channel, msg) -> consumer.accept(msg)); } diff --git a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/config/provider/RedisRouteDefinitionRepository.java b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/config/provider/RedisRouteDefinitionRepository.java index ebdb94caf..492de65d2 100644 --- a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/config/provider/RedisRouteDefinitionRepository.java +++ b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/config/provider/RedisRouteDefinitionRepository.java @@ -10,6 +10,8 @@ import org.springframework.cloud.gateway.route.RouteDefinitionRepository; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import static com.ruoyi.isc.common.constant.IscRedisKeys.KEY_ROUTES; + /** * Redis 路由仓库 * @@ -20,7 +22,6 @@ import reactor.core.publisher.Mono; public class RedisRouteDefinitionRepository implements RouteDefinitionRepository { public static final Codec ROUTE_CODES_INSTANCE = new TypedJsonJacksonCodec(String.class, RouteDefinition.class); - public static final String KEY_ROUTES = "ROUTES:"; private final RedissonClient redissonClient; public RedisRouteDefinitionRepository(RedissonClient redissonClient) diff --git a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/filter/CustomerGlobalFilter.java b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/filter/CustomerGlobalFilter.java index 247100ea2..4b49b0796 100644 --- a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/filter/CustomerGlobalFilter.java +++ b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/filter/CustomerGlobalFilter.java @@ -9,7 +9,7 @@ import cn.hutool.json.JSONUtil; import com.ruoyi.gateway.exception.*; import com.ruoyi.gateway.ratelimit.CustomerRedisRateLimiter; import com.ruoyi.gateway.utils.GatewayUtils; -import com.ruoyi.gateway.utils.beans.IscRule; +import com.ruoyi.isc.common.utils.beans.IscRule; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.cloud.gateway.route.Route; @@ -37,6 +37,7 @@ import java.util.stream.Collectors; import static com.ruoyi.gateway.filter.CustomerGlobalFilter.AccessKey.AccessKeyType; import static com.ruoyi.gateway.filter.CustomerGlobalFilter.AccessKey.AccessKeyType.*; +import static com.ruoyi.isc.common.constant.IscGatewayContants.*; import static org.springframework.util.CollectionUtils.unmodifiableMultiValueMap; /** @@ -57,7 +58,6 @@ public class CustomerGlobalFilter implements GlobalFilter, Ordered { this.rateLimiter = rateLimiter; } - private static final String ACCESS_KEY_NAME_DEFAULT = "ak"; private static final TimeUnit[] TIME_UNITS = {TimeUnit.SECONDS, TimeUnit.MINUTES, TimeUnit.HOURS, TimeUnit.DAYS}; @Override @@ -67,7 +67,7 @@ public class CustomerGlobalFilter implements GlobalFilter, Ordered { final ServerHttpRequest request = exchange.getRequest(); //ak 是否存在 final HttpMethod httpMethod = request.getMethod(); - AccessKey accessKey = new AccessKey(String.valueOf(metadata.getOrDefault(GatewayUtils.CONFIG_ACCESS_KEY_NAME_KEY, + AccessKey accessKey = new AccessKey(String.valueOf(metadata.getOrDefault(CONFIG_ACCESS_KEY_NAME_KEY, ACCESS_KEY_NAME_DEFAULT))); accessKey.set(GatewayUtils.getValue(null, () -> request.getHeaders().get(accessKey.name)), HEADER); MultiValueMap queryParams = request.getQueryParams().containsKey(accessKey.name) ? @@ -305,7 +305,7 @@ public class CustomerGlobalFilter implements GlobalFilter, Ordered { * @param 参数类型 */ private void handleHiddenParams(Route route, U result, BiConsumer, U> mapper) { - final Object obj = route.getMetadata().get(GatewayUtils.CONFIG_ADD_PARAM_KEY); + final Object obj = route.getMetadata().get(CONFIG_ADD_PARAM_KEY); if (Objects.isNull(obj)) { return; } diff --git a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/ratelimit/CustomerRedisRateLimiter.java b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/ratelimit/CustomerRedisRateLimiter.java index 2e2289b80..0eea20016 100644 --- a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/ratelimit/CustomerRedisRateLimiter.java +++ b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/ratelimit/CustomerRedisRateLimiter.java @@ -2,6 +2,7 @@ package com.ruoyi.gateway.ratelimit; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.StrUtil; +import com.ruoyi.gateway.utils.GatewayUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.gateway.filter.ratelimit.RedisRateLimiter; import org.springframework.cloud.gateway.support.ConfigurationService; @@ -26,12 +27,12 @@ import java.util.concurrent.atomic.AtomicBoolean; @Slf4j public class CustomerRedisRateLimiter extends RedisRateLimiter { - private ReactiveStringRedisTemplate redisTemplate; + private final ReactiveStringRedisTemplate redisTemplate; - private RedisScript> script; - private RedisScript timeRedisScript; + private final RedisScript> script; + private final RedisScript timeRedisScript; - private AtomicBoolean initialized = new AtomicBoolean(false); + private final AtomicBoolean initialized = new AtomicBoolean(false); public CustomerRedisRateLimiter(ReactiveStringRedisTemplate redisTemplate, RedisScript> script, ConfigurationService configurationService, DefaultRedisScript timeRedisScript) { @@ -44,7 +45,7 @@ public class CustomerRedisRateLimiter extends RedisRateLimiter { public Mono isAllowed(String routeId, String ak, Long replenishRate, TimeUnit timeUnit) { Config routeConfig = new Config().setReplenishRate(replenishRate.intValue()); - String id = ak + ':' + routeId; + String id = GatewayUtils.getRouteKey(ak, routeId); int time = 60; LocalDateTime now = LocalDateTime.now(); List keys; diff --git a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/GatewayUtils.java b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/GatewayUtils.java index da5847b6f..05035d4ba 100644 --- a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/GatewayUtils.java +++ b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/GatewayUtils.java @@ -3,9 +3,8 @@ package com.ruoyi.gateway.utils; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import cn.hutool.extra.spring.SpringUtil; -import com.ruoyi.gateway.utils.beans.IscRule; import com.ruoyi.gateway.utils.caching.CachingRule; -import org.redisson.api.DeletedObjectListener; +import com.ruoyi.isc.common.utils.beans.IscRule; import org.redisson.api.RMap; import org.redisson.api.RedissonClient; import org.redisson.client.codec.Codec; @@ -31,20 +30,14 @@ import java.util.List; import java.util.Objects; import java.util.function.Supplier; +import static com.ruoyi.isc.common.constant.IscGatewayContants.RULE_CODES_INSTANCE; +import static com.ruoyi.isc.common.constant.IscRedisKeys.KEY_RULES; + /** * @author Wenchao Gong * @date 2021-10-15 */ -public class GatewayUtils { - - public static final String CONFIG_ACCESS_KEY_NAME_KEY = "accessKeyName"; - public static final String CONFIG_ADD_PARAM_KEY = "addParam"; - /** - * Gateway 服务对应AK规则 - */ - public static final String KEY_RULES = "RULES:"; - - public static final Codec RULE_CODES_INSTANCE = new TypedJsonJacksonCodec(String.class, IscRule.class); +public class GatewayUtils extends com.ruoyi.isc.common.utils.GatewayUtils { private static RedissonClient client = SpringUtil.getBean(RedissonClient.class); /** @@ -166,7 +159,7 @@ public class GatewayUtils { * @return */ public static IscRule getRule(String ak, String routeId) { - String key = ak + ':' + routeId; + String key = getRouteKey(ak, routeId); return CachingRule.getRule(key, GatewayUtils::getRedisRule); } diff --git a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/caching/CachingRule.java b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/caching/CachingRule.java index 594787655..5ff5db1fc 100644 --- a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/caching/CachingRule.java +++ b/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/caching/CachingRule.java @@ -1,6 +1,6 @@ package com.ruoyi.gateway.utils.caching; -import com.ruoyi.gateway.utils.beans.IscRule; +import com.ruoyi.isc.common.utils.beans.IscRule; import org.springframework.cache.Cache; import org.springframework.cache.concurrent.ConcurrentMapCache; diff --git a/ruoyi-isc-parent/pom.xml b/ruoyi-isc-parent/pom.xml new file mode 100644 index 000000000..d633933a2 --- /dev/null +++ b/ruoyi-isc-parent/pom.xml @@ -0,0 +1,33 @@ + + + + ruoyi-vue-plus + com.ruoyi + 3.1.0 + + 4.0.0 + + ruoyi-isc-parent + pom + + ruoyi-isc-common + ruoyi-isc + + + + + + com.ruoyi + ruoyi-isc-common + ${project.version} + + + com.ruoyi + ruoyi-isc + ${project.version} + + + + \ No newline at end of file diff --git a/ruoyi-isc-parent/ruoyi-isc-common/pom.xml b/ruoyi-isc-parent/ruoyi-isc-common/pom.xml new file mode 100644 index 000000000..4bc845234 --- /dev/null +++ b/ruoyi-isc-parent/ruoyi-isc-common/pom.xml @@ -0,0 +1,30 @@ + + + + ruoyi-isc-parent + com.ruoyi + 3.1.0 + + 4.0.0 + + ruoyi-isc-common + + + + org.projectlombok + lombok + compile + + + com.fasterxml.jackson.core + jackson-annotations + + + org.redisson + redisson + + + + \ No newline at end of file diff --git a/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/constant/IscGatewayContants.java b/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/constant/IscGatewayContants.java new file mode 100644 index 000000000..c11959f5b --- /dev/null +++ b/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/constant/IscGatewayContants.java @@ -0,0 +1,31 @@ +package com.ruoyi.isc.common.constant; + +import com.ruoyi.isc.common.utils.beans.IscRule; +import org.redisson.client.codec.Codec; +import org.redisson.codec.TypedJsonJacksonCodec; + +/** + * Isc Gateway 公共常量 + * @author Wenchao Gong + * @date 2021-10-30 + */ +public interface IscGatewayContants { + + /** AccessKey 默认名称 */ + String ACCESS_KEY_NAME_DEFAULT = "ak"; + + /** 路由刷新通知主题 */ + String TOPIC_GATEWAY_REFRESH_ROUTE = "TOPIC_GATEWAY_REFRESH_ROUTE"; + + /** 规则刷新通知主题 */ + String TOPIC_GATEWAY_RULE = "TOPIC_GATEWAY_RULE"; + + /** AccessKeyName 路由配置名称 */ + String CONFIG_ACCESS_KEY_NAME_KEY = "accessKeyName"; + + /** 添加参数 路由配置名称 */ + String CONFIG_ADD_PARAM_KEY = "addParam"; + + /** 规则编解码器 */ + Codec RULE_CODES_INSTANCE = new TypedJsonJacksonCodec(String.class, IscRule.class); +} diff --git a/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/constant/IscRedisKeys.java b/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/constant/IscRedisKeys.java new file mode 100644 index 000000000..af8e847c5 --- /dev/null +++ b/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/constant/IscRedisKeys.java @@ -0,0 +1,19 @@ +package com.ruoyi.isc.common.constant; + +/** + * Redis Keys + * @author Wenchao Gong + * @date 2021-10-30 + */ +public interface IscRedisKeys { + + /** + * Gateway 路由信息Redis Key + */ + String KEY_ROUTES = "ROUTES:"; + + /** + * Gateway 服务对应AK规则 + */ + String KEY_RULES = "RULES:"; +} diff --git a/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/utils/GatewayUtils.java b/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/utils/GatewayUtils.java new file mode 100644 index 000000000..620e4a8da --- /dev/null +++ b/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/utils/GatewayUtils.java @@ -0,0 +1,30 @@ +package com.ruoyi.isc.common.utils; + +/** + * @author Wenchao Gong + * @date 2021-10-30 + */ +public class GatewayUtils { + + /** + * 获取 路由Key + * + * @param ak AccessKey + * @param serviceId 服务ID + * @return 路由Key + */ + public static String getRouteKey(String ak, String serviceId) { + return ak + ':' + serviceId; + } + + /** + * 获取 路由Key + * + * @param ak AccessKey + * @param serviceId 服务ID + * @return 路由Key + */ + public static String getRouteKey(String ak, Long serviceId) { + return getRouteKey(ak, String.valueOf(serviceId)); + } +} diff --git a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/beans/IscRule.java b/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/utils/beans/IscRule.java similarity index 92% rename from ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/beans/IscRule.java rename to ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/utils/beans/IscRule.java index 23e205f20..a637fa164 100644 --- a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/beans/IscRule.java +++ b/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/utils/beans/IscRule.java @@ -1,4 +1,4 @@ -package com.ruoyi.gateway.utils.beans; +package com.ruoyi.isc.common.utils.beans; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Getter; diff --git a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/beans/TopicMsg.java b/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/utils/beans/TopicMsg.java similarity index 94% rename from ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/beans/TopicMsg.java rename to ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/utils/beans/TopicMsg.java index 7a82c2ee2..91d64e5ee 100644 --- a/ruoyi-extend/ruoyi-isc-gateway/src/main/java/com/ruoyi/gateway/utils/beans/TopicMsg.java +++ b/ruoyi-isc-parent/ruoyi-isc-common/src/main/java/com/ruoyi/isc/common/utils/beans/TopicMsg.java @@ -1,4 +1,4 @@ -package com.ruoyi.gateway.utils.beans; +package com.ruoyi.isc.common.utils.beans; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/ruoyi-isc/pom.xml b/ruoyi-isc-parent/ruoyi-isc/pom.xml similarity index 76% rename from ruoyi-isc/pom.xml rename to ruoyi-isc-parent/ruoyi-isc/pom.xml index e994e24fa..80d4fd477 100644 --- a/ruoyi-isc/pom.xml +++ b/ruoyi-isc-parent/ruoyi-isc/pom.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - ruoyi-vue-plus + ruoyi-isc-parent com.ruoyi 3.1.0 @@ -12,6 +12,10 @@ ruoyi-isc + + com.ruoyi + ruoyi-isc-common + com.ruoyi ruoyi-system diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscAppServiceApplyController.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscAppServiceApplyController.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscAppServiceApplyController.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscAppServiceApplyController.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscAppServiceController.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscAppServiceController.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscAppServiceController.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscAppServiceController.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscApplicationController.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscApplicationController.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscApplicationController.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscApplicationController.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscServiceCateController.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscServiceCateController.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscServiceCateController.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscServiceCateController.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscServiceController.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscServiceController.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscServiceController.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/controller/IscServiceController.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscAppService.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscAppService.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscAppService.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscAppService.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscAppServiceApply.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscAppServiceApply.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscAppServiceApply.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscAppServiceApply.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscApplication.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscApplication.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscApplication.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscApplication.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscService.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscService.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscService.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscService.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscServiceCate.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscServiceCate.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscServiceCate.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/IscServiceCate.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAppServiceApplyBo.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAppServiceApplyBo.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAppServiceApplyBo.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAppServiceApplyBo.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAppServiceBo.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAppServiceBo.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAppServiceBo.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAppServiceBo.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscApplicationBo.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscApplicationBo.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscApplicationBo.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscApplicationBo.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAuditBo.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAuditBo.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAuditBo.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscAuditBo.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscServiceBo.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscServiceBo.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscServiceBo.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscServiceBo.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscServiceCateBo.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscServiceCateBo.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscServiceCateBo.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/bo/IscServiceCateBo.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscAppServiceApplyVo.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscAppServiceApplyVo.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscAppServiceApplyVo.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscAppServiceApplyVo.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscAppServiceVo.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscAppServiceVo.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscAppServiceVo.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscAppServiceVo.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscApplicationVo.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscApplicationVo.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscApplicationVo.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscApplicationVo.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscServiceCateVo.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscServiceCateVo.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscServiceCateVo.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscServiceCateVo.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscServiceVo.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscServiceVo.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscServiceVo.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/domain/vo/IscServiceVo.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscAppServiceApplyMapper.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscAppServiceApplyMapper.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscAppServiceApplyMapper.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscAppServiceApplyMapper.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscAppServiceMapper.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscAppServiceMapper.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscAppServiceMapper.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscAppServiceMapper.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscApplicationMapper.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscApplicationMapper.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscApplicationMapper.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscApplicationMapper.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscServiceCateMapper.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscServiceCateMapper.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscServiceCateMapper.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscServiceCateMapper.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscServiceMapper.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscServiceMapper.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscServiceMapper.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/mapper/IscServiceMapper.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscAppServiceApplyService.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscAppServiceApplyService.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscAppServiceApplyService.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscAppServiceApplyService.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscAppServiceService.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscAppServiceService.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscAppServiceService.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscAppServiceService.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscApplicationService.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscApplicationService.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscApplicationService.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscApplicationService.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscServiceCateService.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscServiceCateService.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscServiceCateService.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscServiceCateService.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscServiceService.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscServiceService.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscServiceService.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/IIscServiceService.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/service/impl/IscAppServiceApplyServiceImpl.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/impl/IscAppServiceApplyServiceImpl.java similarity index 97% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/service/impl/IscAppServiceApplyServiceImpl.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/impl/IscAppServiceApplyServiceImpl.java index 3500235eb..8d6b7588f 100644 --- a/ruoyi-isc/src/main/java/com/ruoyi/isc/service/impl/IscAppServiceApplyServiceImpl.java +++ b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/service/impl/IscAppServiceApplyServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.IscConstants; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.PagePlus; @@ -149,7 +150,7 @@ public class IscAppServiceApplyServiceImpl extends ServicePlusImpllambdaQuery() .eq(IscAppServiceApply::getApplyId, id) - .eq(IscAppServiceApply::getStatus, IscConstants.AUDIT_WAIT), false); + .eq(IscAppServiceApply::getStatus, Constants.AUDIT_WAIT), false); if(Objects.isNull(apply)) { continue; } @@ -160,7 +161,7 @@ public class IscAppServiceApplyServiceImpl extends ServicePlusImpl new ServiceException("服务信息不存在")); updateData = genAuditPassData(apply, appService, service, bo.getStatus()); @@ -201,7 +202,7 @@ public class IscAppServiceApplyServiceImpl extends ServicePlusImpllambdaQuery() .eq(IscAppServiceApply::getAppServiceId, entity.getAppServiceId()) - .eq(IscAppServiceApply::getStatus, IscConstants.AUDIT_WAIT)); + .eq(IscAppServiceApply::getStatus, Constants.AUDIT_WAIT)); Assert.isFalse(SqlHelper.retBool(count), () -> new ServiceException("有申请未审核, 不能再申请")); } } @@ -203,7 +204,7 @@ public class IscAppServiceServiceImpl extends ServicePlusImpl list = list(Wrappers.lambdaQuery() .eq(IscAppService::getEnabled, UserConstants.NORMAL) - .eq(IscAppService::getStatus, IscConstants.AUDIT_PASS) + .eq(IscAppService::getStatus, Constants.AUDIT_PASS) .gt(IscAppService::getEndTime, DateUtils.getNowDate())); if(CollectionUtil.isEmpty(list)) { return; @@ -240,7 +241,7 @@ public class IscAppServiceServiceImpl extends ServicePlusImpl serviceList = list(Wrappers.lambdaQuery() .select(IscService::getServiceId, IscService::getServiceName, IscService::getCateFullPath) - .eq(IscService::getStatus, IscConstants.AUDIT_PASS) + .eq(IscService::getStatus, Constants.AUDIT_PASS) .eq(IscService::getEnabled, UserConstants.DICT_NORMAL) .orderByDesc(IscService::getUpdateTime)); return cateService.genCateTree(cateService.selectCateList(), serviceList, exitsIds); @@ -181,13 +182,13 @@ public class IscServiceServiceImpl extends ServicePlusImpl routes = pass ? ListUtil.list(false) : null; for (Long id : bo.getIds()) { IscService service = getOne(Wrappers.lambdaQuery() .eq(IscService::getServiceId, id) - .eq(IscService::getStatus, IscConstants.AUDIT_WAIT), false); + .eq(IscService::getStatus, Constants.AUDIT_WAIT), false); if(Objects.isNull(service)) { continue; } @@ -209,9 +210,9 @@ public class IscServiceServiceImpl extends ServicePlusImpl new ServiceException("审核意见不能为空")); break; default: @@ -224,7 +225,7 @@ public class IscServiceServiceImpl extends ServicePlusImpl serviceList = list(Wrappers.lambdaQuery() .select(IscService::getServiceId, IscService::getServiceAddr, IscService::getHiddenParams, IscService::getRequestMethod) - .eq(IscService::getStatus, IscConstants.AUDIT_PASS)); + .eq(IscService::getStatus, Constants.AUDIT_PASS)); List routes = new ArrayList<>(); for (IscService service : serviceList) { diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/RouteUtils.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/RouteUtils.java similarity index 88% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/utils/RouteUtils.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/RouteUtils.java index a1bfa766c..d13a5ab27 100644 --- a/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/RouteUtils.java +++ b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/RouteUtils.java @@ -2,13 +2,16 @@ package com.ruoyi.isc.utils; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; -import com.ruoyi.common.constant.IscConstants; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.isc.common.constant.IscRedisKeys; +import com.ruoyi.isc.common.utils.GatewayUtils; +import com.ruoyi.isc.common.utils.beans.IscRule; +import com.ruoyi.isc.common.utils.beans.TopicMsg; +import com.ruoyi.isc.common.utils.beans.TopicMsg.Type; import com.ruoyi.isc.domain.IscAppService; import com.ruoyi.isc.domain.IscService; import com.ruoyi.isc.utils.beans.*; -import com.ruoyi.isc.utils.beans.TopicMsg.Type; import lombok.extern.slf4j.Slf4j; import org.redisson.api.RMap; import org.redisson.api.RTopic; @@ -23,6 +26,8 @@ import java.util.function.Consumer; import java.util.function.Function; import java.util.stream.Collectors; +import static com.ruoyi.isc.common.constant.IscGatewayContants.*; + /** * @author Wenchao Gong * @date 2021/9/10 14:46 @@ -31,15 +36,10 @@ import java.util.stream.Collectors; public class RouteUtils { public static final Codec ROUTE_CODES_INSTANCE = new TypedJsonJacksonCodec(String.class, IscRouteDefinition.class); - public static final Codec RULE_CODES_INSTANCE = new TypedJsonJacksonCodec(String.class, IscRule.class); - public static final Codec TOPIC_MSG_CODES_INSTANCE = new TypedJsonJacksonCodec(String.class, TopicMsg.class); - public static final String TOPIC_GATEWAY_REFRESH_ROUTE = "TOPIC_GATEWAY_REFRESH_ROUTE"; - public static final String TOPIC_GATEWAY_RULE = "TOPIC_GATEWAY_RULE"; /** * Gateway 虚拟路径前缀 */ public static final String PATH_PREFIX = "/proxy"; - public static final String ACCESS_KEY_NAME = "ak"; private static final RedissonClient CLIENT = SpringUtils.getBean(RedissonClient.class); /** @@ -88,7 +88,7 @@ public class RouteUtils { * @param consumer 自定义处理 */ public static void publish(String channelKey, T msg, Consumer consumer) { - RTopic topic = CLIENT.getTopic(channelKey, TOPIC_MSG_CODES_INSTANCE); + RTopic topic = CLIENT.getTopic(channelKey); topic.publish(msg); consumer.accept(msg); } @@ -119,10 +119,10 @@ public class RouteUtils { { Map routeMap = routes.stream().collect(Collectors.toMap(IscRouteDefinition::getId, Function.identity(), (o1, o2) -> o2)); - final RMap map = CLIENT.getMap(IscConstants.KEY_ROUTES, ROUTE_CODES_INSTANCE); + final RMap map = CLIENT.getMap(IscRedisKeys.KEY_ROUTES, ROUTE_CODES_INSTANCE); map.clear(); map.putAll(routeMap); - sendRefreshRouteToGateway(null, Type.REFRESH, + sendRefreshRouteToGateway(null, TopicMsg.Type.REFRESH, (msg) -> log.info("路由刷新完成,通知网关刷新路由![{}]", msg.getMsg())); return true; } @@ -149,7 +149,7 @@ public class RouteUtils { if(CollectionUtil.isEmpty(routes)) { return true; } - final RMap map = CLIENT.getMap(IscConstants.KEY_ROUTES, ROUTE_CODES_INSTANCE); + final RMap map = CLIENT.getMap(IscRedisKeys.KEY_ROUTES, ROUTE_CODES_INSTANCE); Map collect = routes.stream().collect(Collectors.toMap(IscRouteDefinition::getId, Function.identity())); map.putAll(collect); final String id = String.join(",", collect.keySet()); @@ -170,7 +170,7 @@ public class RouteUtils { */ public static boolean deleteRoute(Collection routeIds) { - final RMap map = CLIENT.getMap(IscConstants.KEY_ROUTES, ROUTE_CODES_INSTANCE); + final RMap map = CLIENT.getMap(IscRedisKeys.KEY_ROUTES, ROUTE_CODES_INSTANCE); final String[] ids = routeIds.toArray(new String[0]); map.fastRemove(ids); final String id = String.join(",", routeIds); @@ -229,8 +229,8 @@ public class RouteUtils { //其他信息 Map metadata = route.getMetadata(); - metadata.put("accessKeyName", ACCESS_KEY_NAME); - metadata.put("addParam", service.getHiddenParams()); + metadata.put(CONFIG_ACCESS_KEY_NAME_KEY, ACCESS_KEY_NAME_DEFAULT); + metadata.put(CONFIG_ADD_PARAM_KEY, service.getHiddenParams()); return route; } @@ -244,7 +244,7 @@ public class RouteUtils { public static IscRule generateRule(IscAppService appService, String accessKey) { IscRule rule = new IscRule(); - rule.setId(accessKey + ':' + appService.getServiceId()); + rule.setId(GatewayUtils.getRouteKey(accessKey, appService.getServiceId())); rule.setExpire(appService.getEndTime()); rule.setDaysLimit(appService.getQuotaDays()); rule.setHoursLimit(appService.getQuotaHours()); @@ -262,7 +262,7 @@ public class RouteUtils { public static boolean refreshRules(List rules) { Map ruleMap = rules.stream().collect(Collectors.toMap(IscRule::getId, Function.identity(), (o1, o2) -> o2)); - final RMap map = CLIENT.getMap(IscConstants.KEY_RULES, RULE_CODES_INSTANCE); + final RMap map = CLIENT.getMap(IscRedisKeys.KEY_RULES, RULE_CODES_INSTANCE); map.clear(); map.putAll(ruleMap); final String id = String.join(",", ruleMap.keySet()); @@ -290,7 +290,7 @@ public class RouteUtils { */ public static boolean saveRule(IscRule rule, Consumer consumer) { - final RMap map = CLIENT.getMap(IscConstants.KEY_RULES, RULE_CODES_INSTANCE); + final RMap map = CLIENT.getMap(IscRedisKeys.KEY_RULES, RULE_CODES_INSTANCE); map.put(rule.getId(), rule); Type type = Type.UPDATE; if(Objects.isNull(consumer)) { @@ -309,7 +309,7 @@ public class RouteUtils { */ public static boolean deleteRule(String ruleId) { - final RMap map = CLIENT.getMap(IscConstants.KEY_RULES, RULE_CODES_INSTANCE); + final RMap map = CLIENT.getMap(IscRedisKeys.KEY_RULES, RULE_CODES_INSTANCE); map.remove(ruleId); sendRuleNoticeToGateway(ruleId, Type.DELETE, (msg) -> log.info("删除[{}]规则[{}]完成,通知网关刷新规则![{}]", msg.getType(), msg.getId(), msg.getMsg())); diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscFilterDefinition.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscFilterDefinition.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscFilterDefinition.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscFilterDefinition.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscPredicateDefinition.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscPredicateDefinition.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscPredicateDefinition.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscPredicateDefinition.java diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscRouteDefinition.java b/ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscRouteDefinition.java similarity index 100% rename from ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscRouteDefinition.java rename to ruoyi-isc-parent/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscRouteDefinition.java diff --git a/ruoyi-isc/src/main/resources/mapper/isc/IscAppServiceApplyMapper.xml b/ruoyi-isc-parent/ruoyi-isc/src/main/resources/mapper/isc/IscAppServiceApplyMapper.xml similarity index 100% rename from ruoyi-isc/src/main/resources/mapper/isc/IscAppServiceApplyMapper.xml rename to ruoyi-isc-parent/ruoyi-isc/src/main/resources/mapper/isc/IscAppServiceApplyMapper.xml diff --git a/ruoyi-isc/src/main/resources/mapper/isc/IscAppServiceMapper.xml b/ruoyi-isc-parent/ruoyi-isc/src/main/resources/mapper/isc/IscAppServiceMapper.xml similarity index 100% rename from ruoyi-isc/src/main/resources/mapper/isc/IscAppServiceMapper.xml rename to ruoyi-isc-parent/ruoyi-isc/src/main/resources/mapper/isc/IscAppServiceMapper.xml diff --git a/ruoyi-isc/src/main/resources/mapper/isc/IscApplicationMapper.xml b/ruoyi-isc-parent/ruoyi-isc/src/main/resources/mapper/isc/IscApplicationMapper.xml similarity index 100% rename from ruoyi-isc/src/main/resources/mapper/isc/IscApplicationMapper.xml rename to ruoyi-isc-parent/ruoyi-isc/src/main/resources/mapper/isc/IscApplicationMapper.xml diff --git a/ruoyi-isc/src/main/resources/mapper/isc/IscServiceCateMapper.xml b/ruoyi-isc-parent/ruoyi-isc/src/main/resources/mapper/isc/IscServiceCateMapper.xml similarity index 100% rename from ruoyi-isc/src/main/resources/mapper/isc/IscServiceCateMapper.xml rename to ruoyi-isc-parent/ruoyi-isc/src/main/resources/mapper/isc/IscServiceCateMapper.xml diff --git a/ruoyi-isc/src/main/resources/mapper/isc/IscServiceMapper.xml b/ruoyi-isc-parent/ruoyi-isc/src/main/resources/mapper/isc/IscServiceMapper.xml similarity index 100% rename from ruoyi-isc/src/main/resources/mapper/isc/IscServiceMapper.xml rename to ruoyi-isc-parent/ruoyi-isc/src/main/resources/mapper/isc/IscServiceMapper.xml diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscRule.java b/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscRule.java deleted file mode 100644 index 3d55f6ed6..000000000 --- a/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/IscRule.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.ruoyi.isc.utils.beans; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Getter; -import lombok.Setter; - -import java.io.Serializable; -import java.util.Date; - -/** - * 网关 规则信息(服务对应AK处理规则) - * @author Wechao Gong - * @date 2021-10-16 - */ -@Getter -@Setter -public class IscRule implements Serializable -{ - @JsonIgnore - private String id; - private Date expire; - private Long daysLimit; - private Long hoursLimit; - private Long minutesLimit; - private Long secondsLimit; -} diff --git a/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/TopicMsg.java b/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/TopicMsg.java deleted file mode 100644 index c5dfb78ce..000000000 --- a/ruoyi-isc/src/main/java/com/ruoyi/isc/utils/beans/TopicMsg.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.ruoyi.isc.utils.beans; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -/** - * @author Wenchao Gong - * @date 2021-10-26 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class TopicMsg implements Serializable { - /** 消息ID */ - private String id; - - /** 消息内容 */ - private String msg; - - /** 消息类型 */ - private Type type; - - /** 消息类型枚举 */ - public static enum Type { - /** 新增单条记录 */ - ADD, - /** 更新单条记录 */ - UPDATE, - /** 删除单条记录 */ - DELETE, - /** 刷新所有 */ - REFRESH - } -}