From dd81d932a833209ec2067f7179f7dd1ae97b2d56 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Thu, 16 Oct 2025 14:39:24 +0800
Subject: [PATCH] 优化

---
 ard-vtdu/pom.xml                                                            |    1 
 ard-work/pom.xml                                                            |    1 
 ard-work/src/main/java/com/ard/work/component/forest/TokenInterceptor.java  |    1 
 ard-work/src/main/java/com/ard/work/component/netty/TyTcpClientManager.java |    9 +++-
 pom.xml                                                                     |    8 ++++
 ard-vtdu/src/main/java/com/ard/vtdu/client/MediamtxAuthInterceptor.java     |   54 +++++++++++++++++++++++++++
 6 files changed, 68 insertions(+), 6 deletions(-)

diff --git a/ard-vtdu/pom.xml b/ard-vtdu/pom.xml
index 883d275..e7397f1 100644
--- a/ard-vtdu/pom.xml
+++ b/ard-vtdu/pom.xml
@@ -26,7 +26,6 @@
         <dependency>
             <groupId>com.dtflys.forest</groupId>
             <artifactId>forest-spring-boot-starter</artifactId>
-            <version>1.5.33</version>
         </dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
diff --git a/ard-vtdu/src/main/java/com/ard/vtdu/client/MediamtxAuthInterceptor.java b/ard-vtdu/src/main/java/com/ard/vtdu/client/MediamtxAuthInterceptor.java
new file mode 100644
index 0000000..8104be7
--- /dev/null
+++ b/ard-vtdu/src/main/java/com/ard/vtdu/client/MediamtxAuthInterceptor.java
@@ -0,0 +1,54 @@
+package com.ard.vtdu.client;
+
+import com.ard.vtdu.config.MediamtxConfig;
+import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.interceptor.ForestInterceptor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import java.util.Base64;
+
+/**
+ * 这个拦截器暂时先不使用,需要时在启用
+ * 用于mediaMtx流媒体接口安全请求
+ *
+ * @author lsy
+ * @date 2025/10/16
+ */
+
+@Component
+@Slf4j
+public class MediamtxAuthInterceptor implements ForestInterceptor {
+
+    /**
+     * 该方法在请求发送之前被调用, 若返回false则不会继续发送请求
+     *
+     * @Param request Forest请求对象
+     */
+    @Override
+    public boolean beforeExecute(ForestRequest req) {
+        try {
+
+            String username = "admin";
+            String password = "mypass";
+            //对应mediamtx.yml
+            //- user: argon2:$argon2id$v=19$m=4096,t=3,p=1$c2FsdEl0V2l0aFNhbHQ$Mi4H+feNHQk/E0sm46PEz3dnHPTzZMNWV5LVdDD/4SI
+            //  pass: argon2:$argon2id$v=19$m=4096,t=3,p=1$c2FsdEl0V2l0aFNhbHQ$5VEdlOBG/er50vvc4GZO4uA3juhk/uvUzYOzTMv6RiQ
+
+            // 拼接用户名和密码
+            String authString = username + ":" + password;
+
+            // Base64 编码
+            String encodedAuth = Base64.getEncoder().encodeToString(authString.getBytes());
+
+            // 最终的 Authorization 头
+            String authorizationHeader = "Basic " + encodedAuth;
+
+            log.debug("Authorization header: " + authorizationHeader);
+            req.addHeader("Authorization", authorizationHeader);
+        } catch (Exception e) {
+            log.error("TokenInterceptor 处理异常:{}", e.getMessage());
+            return false;
+        }
+        return true;
+    }
+}
\ No newline at end of file
diff --git a/ard-work/pom.xml b/ard-work/pom.xml
index 46c325c..24d7824 100644
--- a/ard-work/pom.xml
+++ b/ard-work/pom.xml
@@ -29,7 +29,6 @@
         <dependency>
             <groupId>com.dtflys.forest</groupId>
             <artifactId>forest-spring-boot-starter</artifactId>
-            <version>1.8.0</version>
         </dependency>
 
         <!-- netty依赖 springboot2.x自动导入版本 -->
diff --git a/ard-work/src/main/java/com/ard/work/component/forest/TokenInterceptor.java b/ard-work/src/main/java/com/ard/work/component/forest/TokenInterceptor.java
index f20837b..2145b5e 100644
--- a/ard-work/src/main/java/com/ard/work/component/forest/TokenInterceptor.java
+++ b/ard-work/src/main/java/com/ard/work/component/forest/TokenInterceptor.java
@@ -4,7 +4,6 @@
 import com.ard.work.service.IArdServerInfoService;
 import com.dtflys.forest.http.ForestRequest;
 import com.dtflys.forest.interceptor.ForestInterceptor;
-import com.dtflys.forest.interceptor.Interceptor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import javax.annotation.Resource;
diff --git a/ard-work/src/main/java/com/ard/work/component/netty/TyTcpClientManager.java b/ard-work/src/main/java/com/ard/work/component/netty/TyTcpClientManager.java
index b161c81..c3635c3 100644
--- a/ard-work/src/main/java/com/ard/work/component/netty/TyTcpClientManager.java
+++ b/ard-work/src/main/java/com/ard/work/component/netty/TyTcpClientManager.java
@@ -63,7 +63,9 @@
         return bootstrap;
     }
 
-    /** 新增或重连服务器 */
+    /**
+     * 新增或重连服务器
+     */
     public void connectServer(ArdServerInfo serverInfo) {
         String serverId = serverInfo.getId();
         String host = serverInfo.getHost();
@@ -97,7 +99,9 @@
         channels.put(serverId, session);
     }
 
-    /** 断开服务器连接 */
+    /**
+     * 断开服务器连接
+     */
     public void disconnectServer(String serverId) {
         TcpClientSession session = channels.remove(serverId);
         if (session != null && session.getChannelFuture() != null) {
@@ -188,5 +192,4 @@
                             session.getServerId(), session.getHost(), session.getPort(), timestamp);
                 });
     }
-
 }
diff --git a/pom.xml b/pom.xml
index 1acab07..2bc5699 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,6 +34,7 @@
         <okhttp.version>4.8.1</okhttp.version>
         <mqtt.version>5.5.5</mqtt.version>
         <minio.version>8.3.7</minio.version>
+        <forest.version>1.8.0</forest.version>
         <spring-boot-admin.version>2.5.1</spring-boot-admin.version>
     </properties>
 
@@ -240,6 +241,13 @@
                 <version>${minio.version}</version>
             </dependency>
 
+            <!-- Forest -->
+            <dependency>
+                <groupId>com.dtflys.forest</groupId>
+                <artifactId>forest-spring-boot-starter</artifactId>
+                <version>${forest.version}</version>
+            </dependency>
+
             <!-- SpringBootAdmin管控台 -->
             <dependency>
                 <groupId>de.codecentric</groupId>

--
Gitblit v1.9.3