diff --git a/common/src/main/java/org/dromara/dynamictp/common/entity/NotifyPlatform.java b/common/src/main/java/org/dromara/dynamictp/common/entity/NotifyPlatform.java index 0199118f025555477289891c11a1aafd30bac004..3fd85afc41ebfce0767374aca98fe3fff72b9e01 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/entity/NotifyPlatform.java +++ b/common/src/main/java/org/dromara/dynamictp/common/entity/NotifyPlatform.java @@ -50,6 +50,11 @@ public class NotifyPlatform { */ private String secret; + /** + * webHook, may be null. + */ + private String webHook; + /** * Receivers, split by , */ diff --git a/common/src/main/java/org/dromara/dynamictp/common/notifier/DingNotifier.java b/common/src/main/java/org/dromara/dynamictp/common/notifier/DingNotifier.java index 381aff0aa23c018a2b7b0aafd512b9521ce64c0e..09ecba5a060efd14de4529ce1e71636b2048335a 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/notifier/DingNotifier.java +++ b/common/src/main/java/org/dromara/dynamictp/common/notifier/DingNotifier.java @@ -29,6 +29,7 @@ import org.dromara.dynamictp.common.util.DingSignUtil; import org.dromara.dynamictp.common.util.JsonUtil; import java.util.List; +import java.util.Optional; import static org.dromara.dynamictp.common.constant.DingNotifyConst.DING_NOTICE_TITLE; @@ -72,7 +73,8 @@ public class DingNotifier extends AbstractHttpNotifier { @Override protected String buildUrl(NotifyPlatform platform) { - return getTargetUrl(platform.getSecret(), platform.getUrlKey()); + String webHook = Optional.ofNullable(platform.getWebHook()).orElse(DingNotifyConst.DING_WEBHOOK); + return getTargetUrl(platform.getSecret(), platform.getUrlKey(), webHook); } /** @@ -80,14 +82,15 @@ public class DingNotifier extends AbstractHttpNotifier { * * @param secret secret * @param accessToken accessToken + * @param webHook webHook * @return url */ - private String getTargetUrl(String secret, String accessToken) { + private String getTargetUrl(String secret, String accessToken, String webHook) { if (StringUtils.isBlank(secret)) { - return DingNotifyConst.DING_WEBHOOK + accessToken; + return webHook + accessToken; } long timestamp = System.currentTimeMillis(); String sign = DingSignUtil.dingSign(secret, timestamp); - return DingNotifyConst.DING_WEBHOOK + accessToken + "×tamp=" + timestamp + "&sign=" + sign; + return webHook + accessToken + "×tamp=" + timestamp + "&sign=" + sign; } } diff --git a/common/src/main/java/org/dromara/dynamictp/common/notifier/LarkNotifier.java b/common/src/main/java/org/dromara/dynamictp/common/notifier/LarkNotifier.java index 234620fb9beb914be1b640b2d621dbae2aed2828..d9ec1504b5a819ff24e986177c5ddfe0d9603c6e 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/notifier/LarkNotifier.java +++ b/common/src/main/java/org/dromara/dynamictp/common/notifier/LarkNotifier.java @@ -30,6 +30,7 @@ import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; +import java.util.Optional; import static org.dromara.dynamictp.common.constant.LarkNotifyConst.SIGN_PARAM; import static org.dromara.dynamictp.common.constant.LarkNotifyConst.SIGN_REPLACE; @@ -93,6 +94,7 @@ public class LarkNotifier extends AbstractHttpNotifier { @Override protected String buildUrl(NotifyPlatform platform) { - return LarkNotifyConst.LARK_WEBHOOK + platform.getUrlKey(); + String webHook = Optional.ofNullable(platform.getWebHook()).orElse(LarkNotifyConst.LARK_WEBHOOK); + return webHook + platform.getUrlKey(); } } diff --git a/common/src/main/java/org/dromara/dynamictp/common/notifier/WechatNotifier.java b/common/src/main/java/org/dromara/dynamictp/common/notifier/WechatNotifier.java index 8d70c71cf1346f3bddb8e64fe35d40c76365da06..40201050cfd6455f2ee3212ee922d8f1786ea68d 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/notifier/WechatNotifier.java +++ b/common/src/main/java/org/dromara/dynamictp/common/notifier/WechatNotifier.java @@ -24,6 +24,8 @@ import org.dromara.dynamictp.common.entity.MarkdownReq; import org.dromara.dynamictp.common.entity.NotifyPlatform; import org.dromara.dynamictp.common.util.JsonUtil; +import java.util.Optional; + /** * WechatNotifier related * @@ -50,6 +52,7 @@ public class WechatNotifier extends AbstractHttpNotifier { @Override protected String buildUrl(NotifyPlatform platform) { - return WechatNotifyConst.WECHAT_WEB_HOOK + platform.getUrlKey(); + String webHook = Optional.ofNullable(platform.getWebHook()).orElse(WechatNotifyConst.WECHAT_WEB_HOOK); + return webHook + platform.getUrlKey(); } } diff --git a/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/YunZhiJiaNotifier.java b/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/YunZhiJiaNotifier.java index d15efaf2e9eee5c9cc7c5e2ba8283471bfe3a8bd..51d11930c6159b7ee1905c15d1a291b5f8a08b98 100644 --- a/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/YunZhiJiaNotifier.java +++ b/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/YunZhiJiaNotifier.java @@ -24,6 +24,7 @@ import org.dromara.dynamictp.common.notifier.AbstractHttpNotifier; import java.util.HashMap; import java.util.Map; +import java.util.Optional; /** * YunZhiJiaNotifier related @@ -49,6 +50,7 @@ public class YunZhiJiaNotifier extends AbstractHttpNotifier { @Override protected String buildUrl(NotifyPlatform platform) { - return YunZhiJiaNotifyConst.WEB_HOOK + platform.getUrlKey(); + String webHook = Optional.ofNullable(platform.getWebHook()).orElse(YunZhiJiaNotifyConst.WEB_HOOK); + return webHook + platform.getUrlKey(); } }