From 2d116146cedb5a9a96d1d3a5fe026b5607b30154 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Thu, 26 Feb 2026 13:41:10 +0800
Subject: [PATCH 1/8] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20undertow=20?=
=?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=AC=E6=97=A0=E6=B3=95=E4=B8=8A=E4=BC=A0?=
=?UTF-8?q?=E5=A4=A7=E6=96=87=E4=BB=B6=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-admin/src/main/resources/application.yml | 2 +-
.../org/dromara/common/web/config/UndertowConfig.java | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index d11d9f0ea..637956c2c 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -8,7 +8,7 @@ server:
# undertow 配置
undertow:
# HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的
- max-http-post-size: -1
+ max-http-post-size: 1GB
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
# 每块buffer的空间大小,越小的空间被利用越充分
buffer-size: 512
diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java
index 84f88ff82..02ab0a1eb 100644
--- a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java
@@ -1,11 +1,14 @@
package org.dromara.common.web.config;
+import io.undertow.UndertowOptions;
import io.undertow.server.DefaultByteBufferPool;
import io.undertow.server.handlers.DisallowedMethodsHandler;
import io.undertow.util.HttpString;
import io.undertow.websockets.jsr.WebSocketDeploymentInfo;
import org.dromara.common.core.utils.SpringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfiguration;
+import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.core.task.VirtualThreadTaskExecutor;
@@ -18,6 +21,9 @@ import org.springframework.core.task.VirtualThreadTaskExecutor;
@AutoConfiguration
public class UndertowConfig implements WebServerFactoryCustomizer {
+ @Autowired
+ private ServerProperties serverProperties;
+
/**
* 自定义 Undertow 配置
*
@@ -31,6 +37,11 @@ public class UndertowConfig implements WebServerFactoryCustomizer {
+ builder.setServerOption(UndertowOptions.MULTIPART_MAX_ENTITY_SIZE, bytes);
+ });
+
factory.addDeploymentInfoCustomizers(deploymentInfo -> {
// 配置 WebSocket 部署信息,设置 WebSocket 使用的缓冲区池
WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo();
From e669fa3210c8f7009022bad046f9e254bbc37105 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Thu, 26 Feb 2026 13:42:56 +0800
Subject: [PATCH 2/8] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20undertow=20?=
=?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=AC=E6=97=A0=E6=B3=95=E4=B8=8A=E4=BC=A0?=
=?UTF-8?q?=E5=A4=A7=E6=96=87=E4=BB=B6=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 03f385f1f..ba51c02b5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
5.5.3
- 3.5.9
+ 3.5.11
UTF-8
UTF-8
17
From 6b3ed18c33ec2a315aa85f750835e72edf0e9ead Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Mon, 2 Mar 2026 13:27:53 +0800
Subject: [PATCH 3/8] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E6=B6=88?=
=?UTF-8?q?=E9=99=A4=E7=BC=96=E8=AF=91=E7=9B=B8=E5=85=B3=E6=8F=90=E9=86=92?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dromara/common/mybatis/helper/DataPermissionHelper.java | 2 +-
.../org/dromara/common/satoken/core/dao/PlusSaTokenDao.java | 2 +-
.../java/org/dromara/common/satoken/utils/LoginHelper.java | 4 ++--
.../java/org/dromara/job/snailjob/TestMapJobAnnotation.java | 1 +
.../org/dromara/job/snailjob/TestMapReduceAnnotation1.java | 1 +
.../dromara/workflow/service/impl/FlwNodeExtServiceImpl.java | 2 +-
6 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java
index 8963648c0..76cfd2ad9 100644
--- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java
@@ -23,7 +23,7 @@ import java.util.function.Supplier;
* @version 3.5.0
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-@SuppressWarnings("unchecked cast")
+@SuppressWarnings("unchecked")
public class DataPermissionHelper {
private static final String DATA_PERMISSION_KEY = "data:permission";
diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java
index 14abf896a..09f82324e 100644
--- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java
+++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java
@@ -113,7 +113,7 @@ public class PlusSaTokenDao implements SaTokenDaoBySessionFollowObject {
* @param key 键名称
* @return object
*/
- @SuppressWarnings("unchecked cast")
+ @SuppressWarnings("unchecked")
@Override
public T getObject(String key, Class classType) {
Object o = CAFFEINE.get(key, k -> RedisUtils.getCacheObject(key));
diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java
index 730bae29d..38a367a16 100644
--- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java
+++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java
@@ -63,7 +63,7 @@ public class LoginHelper {
/**
* 获取用户(多级缓存)
*/
- @SuppressWarnings("unchecked cast")
+ @SuppressWarnings("unchecked")
public static T getLoginUser() {
SaSession session = StpUtil.getTokenSession();
if (ObjectUtil.isNull(session)) {
@@ -75,7 +75,7 @@ public class LoginHelper {
/**
* 获取用户基于token
*/
- @SuppressWarnings("unchecked cast")
+ @SuppressWarnings("unchecked")
public static T getLoginUser(String token) {
SaSession session = StpUtil.getTokenSessionByToken(token);
if (ObjectUtil.isNull(session)) {
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java
index f58d7724a..8507092f6 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java
@@ -21,6 +21,7 @@ import java.util.stream.IntStream;
*
* @author 老马
*/
+@SuppressWarnings({"unchecked", "rawtypes"})
@Component
@JobExecutor(name = "testMapJobAnnotation")
public class TestMapJobAnnotation {
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java
index f926016f9..17aa9e461 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java
@@ -23,6 +23,7 @@ import java.util.stream.IntStream;
*
* @author 老马
*/
+@SuppressWarnings({"unchecked", "rawtypes"})
@Component
@JobExecutor(name = "testMapReduceAnnotation1")
public class TestMapReduceAnnotation1 {
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
index ce845dc45..8e398692c 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
@@ -102,7 +102,7 @@ public class FlwNodeExtServiceImpl implements NodeExtService, IFlwNodeExtService
* @param sources 数据来源(枚举类或字典类型)
* @return 构建的 `NodeExt` 对象
*/
- @SuppressWarnings("unchecked cast")
+ @SuppressWarnings("unchecked")
private NodeExt buildNodeExt(String code, String name, int type, List
*/
public static Collection keys(final KeysScanOptions keysScanOptions) {
Stream keysStream = CLIENT.getKeys().getKeysStream(keysScanOptions);
From ab201f9d9e6e9c40869cbb6458cf613d218067f8 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Wed, 4 Mar 2026 16:34:46 +0800
Subject: [PATCH 8/8] =?UTF-8?q?Revert=20"update=20=E4=BC=98=E5=8C=96redis?=
=?UTF-8?q?=20=E5=B7=A5=E5=85=B7=E7=B1=BB=E4=BD=BF=E7=94=A8=E6=96=B9?=
=?UTF-8?q?=E6=B3=95"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit 1f5f969d2057a89d8ec5b6bb80783a9f6a5c5ce0.
---
.../common/redis/utils/RedisUtils.java | 48 ++++---------------
1 file changed, 10 insertions(+), 38 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
index 74deff6a5..c433bffad 100644
--- a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
@@ -269,7 +269,7 @@ public class RedisUtils {
*
* @param key 缓存的键值
* @param dataList 待缓存的List数据
- * @return 操作是否成功
+ * @return 缓存的对象
*/
public static boolean setCacheList(final String key, final List dataList) {
RList rList = CLIENT.getList(key);
@@ -281,43 +281,13 @@ public class RedisUtils {
*
* @param key 缓存的键值
* @param data 待缓存的数据
- * @return 操作是否成功
+ * @return 缓存的对象
*/
public static boolean addCacheList(final String key, final T data) {
RList rList = CLIENT.getList(key);
return rList.add(data);
}
- /**
- * 向缓存List首部插入数据
- *
- * @param key 缓存的键值
- * @param data 待插入到列表首部的最新数据
- */
- public static void addCacheListToFirst(final String key, final T data) {
- RList rList = CLIENT.getList(key);
- rList.addFirst(data);
- }
-
- /**
- * 向缓存List首部插入数据并限制列表最大长度
- * (超出长度时自动删除列表末尾最旧的数据,保证列表只保留最新的N条)
- *
- * @param key 缓存的键值
- * @param data 待插入到列表首部的最新数据
- * @param maxSize 列表允许的最大长度(超出该长度则删除末尾数据)
- */
- public static void addCacheListToFirst(final String key, final T data, int maxSize) {
- RList rList = CLIENT.getList(key);
- rList.addFirst(data);
- // 若列表长度超出最大限制,删除末尾最旧的数据
- // 注:remove(index)会删除指定索引的元素,此处删除maxSize索引(即第maxSize+1条)
- while (rList.size() > maxSize) {
- // 循环删除直到列表长度符合限制(防止并发场景下多次插入导致长度超限)
- rList.remove(maxSize);
- }
- }
-
/**
* 注册List监听器
*
@@ -566,22 +536,24 @@ public class RedisUtils {
* chunkSize-设置每次扫描的块大小(默认为0,本方法设置为1000)
* type-设置键的类型(默认为null,查询全部类型)
*
+ * @see KeysScanOptions
* @param pattern 字符串前缀
* @return 对象列表
*/
public static Collection keys(final String pattern) {
- return keys(KeysScanOptions.defaults().pattern(pattern).chunkSize(1000));
+ return keys(KeysScanOptions.defaults().pattern(pattern).chunkSize(1000));
}
/**
* 通过扫描参数获取缓存的基本对象列表
* @param keysScanOptions 扫描参数
*
- * limit-设置扫描的限制数量(默认为0,查询全部)
- * pattern-设置键的匹配模式(默认为null)
- * chunkSize-设置每次扫描的块大小(默认为0)
- * type-设置键的类型(默认为null,查询全部类型)
- *
+ * limit-设置扫描的限制数量(默认为0,查询全部)
+ * pattern-设置键的匹配模式(默认为null)
+ * chunkSize-设置每次扫描的块大小(默认为0)
+ * type-设置键的类型(默认为null,查询全部类型)
+ *
+ * @see KeysScanOptions
*/
public static Collection keys(final KeysScanOptions keysScanOptions) {
Stream keysStream = CLIENT.getKeys().getKeysStream(keysScanOptions);