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>

Reply via email to