This is an automated email from the ASF dual-hosted git repository.
jinrongtong pushed a commit to branch 4.9.x
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/4.9.x by this push:
new c14b0e99da [4.9.x] Bump snakeyaml version from 1.32 to 2.0 (#7663)
c14b0e99da is described below
commit c14b0e99da44f4d86990c9d454cf7e097321cc8b
Author: dinglei <[email protected]>
AuthorDate: Fri Dec 15 09:58:50 2023 +0800
[4.9.x] Bump snakeyaml version from 1.32 to 2.0 (#7663)
---
.../java/org/apache/rocketmq/acl/common/AclUtils.java | 18 ++++++++++++++++--
pom.xml | 2 +-
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java
b/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java
index b385338c6d..23d3d6736c 100644
--- a/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java
+++ b/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.acl.common;
import com.alibaba.fastjson.JSONObject;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -25,13 +26,18 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import java.util.SortedMap;
+
import org.apache.commons.lang3.StringUtils;
+import org.apache.rocketmq.common.PlainAccessConfig;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
+import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.Constructor;
+import org.yaml.snakeyaml.inspector.TagInspector;
import static org.apache.rocketmq.acl.common.SessionCredentials.CHARSET;
@@ -237,7 +243,7 @@ public class AclUtils {
}
public static <T> T getYamlDataObject(String path, Class<T> clazz) {
- Yaml yaml = new Yaml();
+ Yaml yaml = getYaml();
FileInputStream fis = null;
try {
fis = new FileInputStream(new File(path));
@@ -257,7 +263,7 @@ public class AclUtils {
}
public static boolean writeDataObject(String path, Map<String, Object>
dataMap) {
- Yaml yaml = new Yaml();
+ Yaml yaml = getYaml();
PrintWriter pw = null;
try {
pw = new PrintWriter(new FileWriter(path));
@@ -274,6 +280,14 @@ public class AclUtils {
return true;
}
+ private static Yaml getYaml() {
+ LoaderOptions loaderOptions = new LoaderOptions();
+ TagInspector tagInspector = tag ->
tag.getClassName().equals(PlainAccessConfig.class.getName());
+ loaderOptions.setTagInspector(tagInspector);
+ Yaml yaml = new Yaml(new Constructor(loaderOptions));
+ return yaml;
+ }
+
public static RPCHook getAclRPCHook(String fileName) {
JSONObject yamlDataObject = null;
try {
diff --git a/pom.xml b/pom.xml
index 1ed0be0760..5634d27174 100644
--- a/pom.xml
+++ b/pom.xml
@@ -111,7 +111,7 @@
<guava.version>31.0.1-jre</guava.version>
<openmessaging.version>0.3.1-alpha</openmessaging.version>
<log4j.version>1.2.17</log4j.version>
- <snakeyaml.version>1.30</snakeyaml.version>
+ <snakeyaml.version>2.0</snakeyaml.version>
<commons-codec.version>1.9</commons-codec.version>
<logging-log4j.version>2.17.1</logging-log4j.version>
<commons-validator.version>1.7</commons-validator.version>