From 2e9b7d587116acdacb3aae0041126b50106968f3 Mon Sep 17 00:00:00 2001 From: kyao <24456865@qq.com> Date: Wed, 24 Jan 2024 18:27:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0webHook=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/common/entity/NotifyPlatform.java | 5 +++++ .../dynamictp/common/notifier/DingNotifier.java | 11 +++++++---- .../dynamictp/common/notifier/LarkNotifier.java | 4 +++- .../dynamictp/common/notifier/WechatNotifier.java | 5 ++++- .../extension/notify/yunzhijia/YunZhiJiaNotifier.java | 4 +++- 5 files changed, 22 insertions(+), 7 deletions(-) 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 0199118f..3fd85afc 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 381aff0a..09ecba5a 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 234620fb..d9ec1504 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 8d70c71c..40201050 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 d15efaf2..51d11930 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(); } } -- Gitee