github-code-scanning[bot] commented on code in PR #13194:
URL:
https://github.com/apache/dolphinscheduler/pull/13194#discussion_r1048428217
##########
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java:
##########
@@ -319,4 +328,39 @@
}
return taskInstance;
}
+
+ @Override
+ public TaskInstanceRemoveCacheResponse removeTaskInstanceCache(User
loginUser, long projectCode,
+ Integer
taskInstanceId) {
+ Result result = new Result();
+
+ Project project = projectMapper.queryByCode(projectCode);
+ projectService.checkProjectAndAuthThrowException(loginUser, project,
+ ApiFuncIdentificationConstant.map.get(INSTANCE_UPDATE));
Review Comment:
## Type mismatch on container access
Actual argument type 'String' is incompatible with expected argument type
'ExecuteType'.
[Show more
details](https://github.com/apache/dolphinscheduler/security/code-scanning/2397)
##########
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/utils/TaskCacheUtils.java:
##########
@@ -0,0 +1,110 @@
+package org.apache.dolphinscheduler.dao.utils;
+
+import org.apache.dolphinscheduler.common.utils.JSONUtils;
+import org.apache.dolphinscheduler.dao.entity.TaskInstance;
+import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
+import org.apache.dolphinscheduler.plugin.task.api.enums.Direct;
+import org.apache.dolphinscheduler.plugin.task.api.model.Property;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class TaskCacheUtils {
+
+ final static String MERGE_TAG = "-";
+
+ public static String generateCacheKey(TaskInstance taskInstance,
TaskExecutionContext context) {
+ List<String> keyElements = new ArrayList<>();
+ keyElements.add(String.valueOf(taskInstance.getTaskCode()));
+
keyElements.add(String.valueOf(taskInstance.getTaskDefinitionVersion()));
+ keyElements.add(String.valueOf(taskInstance.getIsCache().getCode()));
+ keyElements.add(getTaskInputVarPool(taskInstance, context));
+ String data = StringUtils.join(keyElements, "_");
+ String cacheKey = md5(data);
+ System.out.println("cacheKey: " + cacheKey + ", data: " + data);
+ return cacheKey;
+ }
+
+ public static String generateTagCacheKey(Integer sourceTaskId, String
cacheKey) {
+ return sourceTaskId + MERGE_TAG + cacheKey;
+ }
+
+ public static String revertCacheKey(String tagCacheKey) {
+ if (tagCacheKey == null) {
+ return "";
+ }
+ if (tagCacheKey.contains(MERGE_TAG)) {
+ return tagCacheKey.split(MERGE_TAG)[1];
+ } else {
+ return tagCacheKey;
+ }
+ }
+
+ public static String md5(String data) {
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
Review Comment:
## Use of a broken or risky cryptographic algorithm
Cryptographic algorithm [MD5](1) is weak and should not be used.
[Show more
details](https://github.com/apache/dolphinscheduler/security/code-scanning/2396)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]