Quellcode durchsuchen

升级fastjson到最新版2.0.39

RuoYi vor 2 Jahren
Ursprung
Commit
1665fa2793

+ 1 - 1
pom.xml

@@ -30,7 +30,7 @@
30
         <dynamic-ds.version>3.5.2</dynamic-ds.version>
30
         <dynamic-ds.version>3.5.2</dynamic-ds.version>
31
         <commons.io.version>2.13.0</commons.io.version>
31
         <commons.io.version>2.13.0</commons.io.version>
32
         <velocity.version>2.3</velocity.version>
32
         <velocity.version>2.3</velocity.version>
33
-        <fastjson.version>2.0.34</fastjson.version>
33
+        <fastjson.version>2.0.39</fastjson.version>
34
         <jjwt.version>0.9.1</jjwt.version>
34
         <jjwt.version>0.9.1</jjwt.version>
35
         <minio.version>8.2.2</minio.version>
35
         <minio.version>8.2.2</minio.version>
36
         <poi.version>4.1.2</poi.version>
36
         <poi.version>4.1.2</poi.version>

+ 5 - 0
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java

@@ -118,6 +118,11 @@ public class Constants
118
     public static final String RESOURCE_PREFIX = "/profile";
118
     public static final String RESOURCE_PREFIX = "/profile";
119
 
119
 
120
     /**
120
     /**
121
+     * 自动识别json对象白名单配置(仅允许解析的包名,范围越小越安全)
122
+     */
123
+    public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.ruoyi" };
124
+
125
+    /**
121
      * 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加)
126
      * 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加)
122
      */
127
      */
123
     public static final String[] JOB_WHITELIST_STR = { "com.ruoyi" };
128
     public static final String[] JOB_WHITELIST_STR = { "com.ruoyi" };

+ 5 - 2
ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/FastJson2JsonRedisSerializer.java

@@ -6,6 +6,8 @@ import org.springframework.data.redis.serializer.SerializationException;
6
 import com.alibaba.fastjson2.JSON;
6
 import com.alibaba.fastjson2.JSON;
7
 import com.alibaba.fastjson2.JSONReader;
7
 import com.alibaba.fastjson2.JSONReader;
8
 import com.alibaba.fastjson2.JSONWriter;
8
 import com.alibaba.fastjson2.JSONWriter;
9
+import com.alibaba.fastjson2.filter.Filter;
10
+import com.ruoyi.common.core.constant.Constants;
9
 
11
 
10
 /**
12
 /**
11
  * Redis使用FastJson序列化
13
  * Redis使用FastJson序列化
@@ -16,8 +18,9 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
16
 {
18
 {
17
     public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
19
     public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
18
 
20
 
19
-    private Class<T> clazz;
21
+    static final Filter AUTO_TYPE_FILTER = JSONReader.autoTypeFilter(Constants.JSON_WHITELIST_STR);
20
 
22
 
23
+    private Class<T> clazz;
21
 
24
 
22
     public FastJson2JsonRedisSerializer(Class<T> clazz)
25
     public FastJson2JsonRedisSerializer(Class<T> clazz)
23
     {
26
     {
@@ -44,6 +47,6 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
44
         }
47
         }
45
         String str = new String(bytes, DEFAULT_CHARSET);
48
         String str = new String(bytes, DEFAULT_CHARSET);
46
 
49
 
47
-        return JSON.parseObject(str, clazz, JSONReader.Feature.SupportAutoType);
50
+        return JSON.parseObject(str, clazz, AUTO_TYPE_FILTER);
48
     }
51
     }
49
 }
52
 }

+ 5 - 0
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java

@@ -4,6 +4,8 @@ import java.util.HashMap;
4
 import java.util.Map;
4
 import java.util.Map;
5
 import java.util.concurrent.TimeUnit;
5
 import java.util.concurrent.TimeUnit;
6
 import javax.servlet.http.HttpServletRequest;
6
 import javax.servlet.http.HttpServletRequest;
7
+import org.slf4j.Logger;
8
+import org.slf4j.LoggerFactory;
7
 import org.springframework.beans.factory.annotation.Autowired;
9
 import org.springframework.beans.factory.annotation.Autowired;
8
 import org.springframework.stereotype.Component;
10
 import org.springframework.stereotype.Component;
9
 import com.ruoyi.common.core.constant.CacheConstants;
11
 import com.ruoyi.common.core.constant.CacheConstants;
@@ -25,6 +27,8 @@ import com.ruoyi.system.api.model.LoginUser;
25
 @Component
27
 @Component
26
 public class TokenService
28
 public class TokenService
27
 {
29
 {
30
+    private static final Logger log = LoggerFactory.getLogger(TokenService.class);
31
+
28
     @Autowired
32
     @Autowired
29
     private RedisService redisService;
33
     private RedisService redisService;
30
 
34
 
@@ -106,6 +110,7 @@ public class TokenService
106
         }
110
         }
107
         catch (Exception e)
111
         catch (Exception e)
108
         {
112
         {
113
+            log.error("获取用户信息异常'{}'", e.getMessage());
109
         }
114
         }
110
         return user;
115
         return user;
111
     }
116
     }