diff --git a/pom.xml b/pom.xml
index 1e5f68361..bf0fbe5b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,7 +33,7 @@
4.3.0
2.2.7
1.9.0
- 1.44.0
+ 1.45.0
1.18.42
7.4
3.0.1
@@ -44,15 +44,15 @@
0.2.0
1.16.7
- 3.3.4
+ 3.3.6
1.2.83
- 2.28.22
+ 2.42.9
3.3.4
- 8.7.3-20251210
+ 8.7.3-20260306
1.8.4
@@ -62,7 +62,7 @@
3.14.0
- 3.5.3
+ 3.5.5
1.3.0
true
@@ -140,6 +140,15 @@
import
+
+
+ cn.dev33
+ sa-token-bom
+ ${satoken.version}
+ pom
+ import
+
+
org.dromara
@@ -158,18 +167,6 @@
import
-
- cn.dev33
- sa-token-core
- ${satoken.version}
-
-
-
- cn.dev33
- sa-token-spring-boot3-starter
- ${satoken.version}
-
-
org.mybatis
mybatis
diff --git a/ruoyi-common/ruoyi-common-dubbo/pom.xml b/ruoyi-common/ruoyi-common-dubbo/pom.xml
index 344e3a1ae..ddac9d53d 100644
--- a/ruoyi-common/ruoyi-common-dubbo/pom.xml
+++ b/ruoyi-common/ruoyi-common-dubbo/pom.xml
@@ -60,7 +60,6 @@
cn.dev33
sa-token-dubbo3
- ${satoken.version}
org.apache.dubbo
diff --git a/ruoyi-common/ruoyi-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/config/ActuatorEnvironmentPostProcessor.java b/ruoyi-common/ruoyi-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/config/ActuatorEnvironmentPostProcessor.java
index c6d1064a0..a1c94f469 100644
--- a/ruoyi-common/ruoyi-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/config/ActuatorEnvironmentPostProcessor.java
+++ b/ruoyi-common/ruoyi-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/config/ActuatorEnvironmentPostProcessor.java
@@ -1,7 +1,7 @@
package org.dromara.common.elasticsearch.config;
+import org.springframework.boot.EnvironmentPostProcessor;
import org.springframework.boot.SpringApplication;
-import org.springframework.boot.env.EnvironmentPostProcessor;
import org.springframework.core.Ordered;
import org.springframework.core.env.ConfigurableEnvironment;
diff --git a/ruoyi-common/ruoyi-common-loadbalancer/src/main/java/org/dromara/common/loadbalance/config/CustomEnvironmentPostProcessor.java b/ruoyi-common/ruoyi-common-loadbalancer/src/main/java/org/dromara/common/loadbalance/config/CustomEnvironmentPostProcessor.java
index 7811238db..77e8d8e86 100644
--- a/ruoyi-common/ruoyi-common-loadbalancer/src/main/java/org/dromara/common/loadbalance/config/CustomEnvironmentPostProcessor.java
+++ b/ruoyi-common/ruoyi-common-loadbalancer/src/main/java/org/dromara/common/loadbalance/config/CustomEnvironmentPostProcessor.java
@@ -1,7 +1,7 @@
package org.dromara.common.loadbalance.config;
+import org.springframework.boot.EnvironmentPostProcessor;
import org.springframework.boot.SpringApplication;
-import org.springframework.boot.env.EnvironmentPostProcessor;
import org.springframework.core.Ordered;
import org.springframework.core.env.ConfigurableEnvironment;
diff --git a/ruoyi-common/ruoyi-common-prometheus/src/main/java/org/dromara/common/prometheus/config/PrometheusConfiguration.java b/ruoyi-common/ruoyi-common-prometheus/src/main/java/org/dromara/common/prometheus/config/PrometheusConfiguration.java
index c5cfbf581..6529e2e76 100644
--- a/ruoyi-common/ruoyi-common-prometheus/src/main/java/org/dromara/common/prometheus/config/PrometheusConfiguration.java
+++ b/ruoyi-common/ruoyi-common-prometheus/src/main/java/org/dromara/common/prometheus/config/PrometheusConfiguration.java
@@ -2,8 +2,8 @@ package org.dromara.common.prometheus.config;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.boot.autoconfigure.AutoConfiguration;
+import org.springframework.boot.micrometer.metrics.autoconfigure.MeterRegistryCustomizer;
import org.springframework.context.annotation.Bean;
/**
diff --git a/ruoyi-common/ruoyi-common-satoken/pom.xml b/ruoyi-common/ruoyi-common-satoken/pom.xml
index 5643acb85..1efef6f86 100644
--- a/ruoyi-common/ruoyi-common-satoken/pom.xml
+++ b/ruoyi-common/ruoyi-common-satoken/pom.xml
@@ -22,13 +22,6 @@
sa-token-core
-
-
- cn.dev33
- sa-token-jwt
- ${satoken.version}
-
-
org.dromara
@@ -41,11 +34,29 @@
ruoyi-common-redis
+
+
+ org.springframework
+ spring-webmvc
+
+
com.github.ben-manes.caffeine
caffeine
+
+
+ cn.dev33
+ sa-token-jwt
+
+
+ cn.hutool
+ hutool-all
+
+
+
+
diff --git a/ruoyi-common/ruoyi-common-security/pom.xml b/ruoyi-common/ruoyi-common-security/pom.xml
index ee499f122..715e87210 100644
--- a/ruoyi-common/ruoyi-common-security/pom.xml
+++ b/ruoyi-common/ruoyi-common-security/pom.xml
@@ -24,7 +24,7 @@
cn.dev33
- sa-token-spring-boot3-starter
+ sa-token-spring-boot4-starter
diff --git a/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java b/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java
index e75dc5bf2..a91393527 100644
--- a/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java
+++ b/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java
@@ -1,9 +1,9 @@
package org.dromara.common.sensitive.annotation;
import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.dromara.common.sensitive.core.SensitiveStrategy;
import org.dromara.common.sensitive.handler.SensitiveHandler;
+import tools.jackson.databind.annotation.JsonSerialize;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/handler/SensitiveHandler.java b/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/handler/SensitiveHandler.java
index a8806d711..4c11af845 100644
--- a/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/handler/SensitiveHandler.java
+++ b/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/handler/SensitiveHandler.java
@@ -1,20 +1,18 @@
package org.dromara.common.sensitive.handler;
import cn.hutool.core.util.ObjectUtil;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.BeanProperty;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.ser.ContextualSerializer;
+import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.sensitive.annotation.Sensitive;
import org.dromara.common.sensitive.core.SensitiveService;
import org.dromara.common.sensitive.core.SensitiveStrategy;
-import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
+import tools.jackson.core.JacksonException;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.databind.BeanProperty;
+import tools.jackson.databind.SerializationContext;
+import tools.jackson.databind.ValueSerializer;
-import java.io.IOException;
import java.util.Objects;
/**
@@ -23,7 +21,7 @@ import java.util.Objects;
* @author Yjoioooo
*/
@Slf4j
-public class SensitiveHandler extends JsonSerializer implements ContextualSerializer {
+public class SensitiveHandler extends ValueSerializer {
private final SensitiveStrategy strategy;
private final String[] roleKey;
@@ -38,14 +36,14 @@ public class SensitiveHandler extends JsonSerializer implements Contextu
this.perms = null;
}
- public SensitiveHandler(SensitiveStrategy strategy, String[] roleKey, String[] perms) {
+ public SensitiveHandler(SensitiveStrategy strategy, String[] strings, String[] perms) {
this.strategy = strategy;
- this.roleKey = roleKey;
+ this.roleKey = strings;
this.perms = perms;
}
@Override
- public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
+ public void serialize(String value, JsonGenerator gen, SerializationContext ctxt) throws JacksonException {
try {
SensitiveService sensitiveService = SpringUtils.getBean(SensitiveService.class);
if (ObjectUtil.isNotNull(sensitiveService) && sensitiveService.isSensitive(roleKey, perms)) {
@@ -60,11 +58,11 @@ public class SensitiveHandler extends JsonSerializer implements Contextu
}
@Override
- public JsonSerializer> createContextual(SerializerProvider prov, BeanProperty property) throws JsonMappingException {
+ public ValueSerializer> createContextual(SerializationContext ctxt, BeanProperty property) {
Sensitive annotation = property.getAnnotation(Sensitive.class);
if (Objects.nonNull(annotation) && Objects.equals(String.class, property.getType().getRawClass())) {
return new SensitiveHandler(annotation.strategy(), annotation.roleKey(), annotation.perms());
}
- return prov.findValueSerializer(property.getType(), property);
+ return super.createContextual(ctxt, property);
}
}
diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java
index 6c1227fe7..dd3320547 100644
--- a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java
+++ b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java
@@ -1,8 +1,8 @@
package org.dromara.common.translation.annotation;
import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.dromara.common.translation.core.handler.TranslationHandler;
+import tools.jackson.databind.annotation.JsonSerialize;
import java.lang.annotation.*;
diff --git a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java
index 56d2215de..ba95ebdc4 100644
--- a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java
+++ b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java
@@ -1,12 +1,12 @@
package org.dromara.demo.domain.vo;
-import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
-import cn.idev.excel.annotation.ExcelProperty;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
+import org.apache.fesod.sheet.annotation.ExcelIgnoreUnannotated;
+import org.apache.fesod.sheet.annotation.ExcelProperty;
import org.dromara.common.core.enums.UserStatus;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
diff --git a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoImportVo.java b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoImportVo.java
index c799b6f12..8024f89ef 100644
--- a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoImportVo.java
+++ b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoImportVo.java
@@ -1,11 +1,11 @@
package org.dromara.demo.domain.vo;
-import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
+import org.apache.fesod.sheet.annotation.ExcelProperty;
import org.dromara.demo.domain.TestDemo;
/**
diff --git a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java
index 642e0f746..0f760c8a3 100644
--- a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java
+++ b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java
@@ -1,8 +1,8 @@
package org.dromara.demo.domain.vo;
-import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
-import cn.idev.excel.annotation.ExcelProperty;
-import cn.idev.excel.annotation.format.DateTimeFormat;
+import org.apache.fesod.sheet.annotation.ExcelIgnoreUnannotated;
+import org.apache.fesod.sheet.annotation.ExcelProperty;
+import org.apache.fesod.sheet.annotation.format.DateTimeFormat;
import org.dromara.common.excel.annotation.ExcelNotation;
import org.dromara.common.excel.annotation.ExcelRequired;
import org.dromara.common.translation.annotation.Translation;
diff --git a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java
index adc43b4ba..6611be844 100644
--- a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java
+++ b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java
@@ -1,9 +1,9 @@
package org.dromara.demo.domain.vo;
-import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
-import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
+import org.apache.fesod.sheet.annotation.ExcelIgnoreUnannotated;
+import org.apache.fesod.sheet.annotation.ExcelProperty;
import org.dromara.demo.domain.TestTree;
import java.io.Serial;
diff --git a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java
index de927609f..781329eed 100644
--- a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java
+++ b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java
@@ -1,7 +1,7 @@
package org.dromara.demo.listener;
import cn.hutool.core.util.NumberUtil;
-import cn.idev.excel.context.AnalysisContext;
+import org.apache.fesod.sheet.context.AnalysisContext;
import org.dromara.common.core.utils.ValidatorUtils;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
diff --git a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java
index cbc627668..60a31dc0e 100644
--- a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java
+++ b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java
@@ -2,10 +2,10 @@ package org.dromara.demo.service.impl;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
-import cn.idev.excel.write.metadata.WriteSheet;
import jakarta.servlet.http.HttpServletResponse;
import lombok.Data;
import lombok.RequiredArgsConstructor;
+import org.apache.fesod.sheet.write.metadata.WriteSheet;
import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.enums.UserStatus;
import org.dromara.common.core.utils.StreamUtils;
diff --git a/ruoyi-gateway-mvc/pom.xml b/ruoyi-gateway-mvc/pom.xml
index caf562d2e..bdbe01c84 100644
--- a/ruoyi-gateway-mvc/pom.xml
+++ b/ruoyi-gateway-mvc/pom.xml
@@ -69,7 +69,7 @@
cn.dev33
- sa-token-spring-boot3-starter
+ sa-token-spring-boot4-starter
diff --git a/ruoyi-gateway/pom.xml b/ruoyi-gateway/pom.xml
index 5ac57af3a..d1b11d6d2 100644
--- a/ruoyi-gateway/pom.xml
+++ b/ruoyi-gateway/pom.xml
@@ -52,7 +52,6 @@
cn.dev33
sa-token-reactor-spring-boot3-starter
- ${satoken.version}