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 <libya_...@163.com> 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>