diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java index 0f5bd438e6..d746c97374 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java @@ -43,7 +43,7 @@ public class LogMsgSendFilter extends LevelFilter { try { //排除其他包路径的东西 if (!event.getLoggerName().startsWith(baseProjectPackage)){ - return FilterReply.DENY; + return super.decide(event); } getServerInfo(); if (EnvEnum.LOCAL.getName().equals(activeEnv)){ diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java index 499dfe7ac6..ca0be5d6ea 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java @@ -2,9 +2,7 @@ package com.epmet.commons.tools.utils; import com.alibaba.fastjson.JSON; import com.dingtalk.api.DefaultDingTalkClient; -import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.OapiRobotSendRequest; -import com.epmet.commons.tools.constant.DingDingRobotConstant; import com.epmet.commons.tools.dto.form.DingTalkTextMsg; import com.google.common.collect.Lists; import org.apache.commons.codec.binary.Base64; @@ -16,9 +14,13 @@ import org.springframework.stereotype.Component; import javax.annotation.PreDestroy; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; +import javax.validation.constraints.NotNull; import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; import java.util.concurrent.ArrayBlockingQueue; /** @@ -135,15 +137,8 @@ public class DingdingMsgSender { param.setSecret(secret); } Result result = new Result().error(); - Long timestamp = System.currentTimeMillis(); try { - String stringToSign = timestamp + "\n" + param.getSecret(); - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(new SecretKeySpec(param.getSecret().getBytes(StandardCharsets.UTF_8), "HmacSHA256")); - byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8)); - String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8"); - String url = param.getWebHook(); - url = url.concat("×tamp=" + timestamp + "&sign=" + sign); + String url = getUrlString(param, System.currentTimeMillis()); String jsonStrParam = param.getMsgContent(); result = HttpClientManager.getInstance().sendPostByJSON(url, jsonStrParam); } catch (Exception e) { @@ -152,6 +147,18 @@ public class DingdingMsgSender { return result; } + @NotNull + private String getUrlString(DingTalkTextMsg param, Long timestamp) throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException { + String stringToSign = timestamp + "\n" + param.getSecret(); + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(new SecretKeySpec(param.getSecret().getBytes(StandardCharsets.UTF_8), "HmacSHA256")); + byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8)); + String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8"); + String url = param.getWebHook(); + url = url.concat("×tamp=" + timestamp + "&sign=" + sign); + return url; + } + /** * 发送POST 请求 * @@ -167,7 +174,8 @@ public class DingdingMsgSender { } Result result = new Result().error(); try { - DingTalkClient client = new DefaultDingTalkClient(StringUtils.isBlank(webHook) ? DingDingRobotConstant.DEPLOY_ROBOT : webHook); + String url = getUrlString(param, System.currentTimeMillis()); + DefaultDingTalkClient client = new DefaultDingTalkClient(url); OapiRobotSendRequest request = new OapiRobotSendRequest(); request.setMsgtype("text"); OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();