From 5713287c84b23694fdcc296aa3c5ce8b13ff8381024d4535d97fbceb7d36a1cd Mon Sep 17 00:00:00 2001 From: ai5590 Date: Tue, 21 Apr 2026 20:06:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=84=D0=BB=D0=B0=D0=B3=20debug.tempApi.enabled=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20debug=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DEBUG_CONNECTION_TESTING.md | 3 +++ .../java/server/debug/DebugApiConfigurator.java | 13 +++++++++++++ src/main/resources/application.properties | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/DEBUG_CONNECTION_TESTING.md b/DEBUG_CONNECTION_TESTING.md index 22ed591..22b7b5c 100644 --- a/DEBUG_CONNECTION_TESTING.md +++ b/DEBUG_CONNECTION_TESTING.md @@ -4,6 +4,9 @@ ## 1) Подготовка + +0. Убедись, что в `application.properties` включен параметр: + `debug.tempApi.enabled=true` 1. Создай файл `.debug-token` в корне проекта на основе `debug-token.example`. 2. В `.debug-token` должна быть одна строка: секретный токен. 3. Перезапусти сервер. diff --git a/src/main/java/server/debug/DebugApiConfigurator.java b/src/main/java/server/debug/DebugApiConfigurator.java index e65aab6..3669868 100644 --- a/src/main/java/server/debug/DebugApiConfigurator.java +++ b/src/main/java/server/debug/DebugApiConfigurator.java @@ -3,21 +3,34 @@ package server.debug; import jakarta.servlet.Servlet; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import utils.config.AppConfig; /** * Регистрирует HTTP debug endpoints. */ public final class DebugApiConfigurator { + private static final Logger log = LoggerFactory.getLogger(DebugApiConfigurator.class); + private static final String CFG_DEBUG_API_ENABLED = "debug.tempApi.enabled"; + private DebugApiConfigurator() { } public static void register(ServletContextHandler context) { + boolean enabled = AppConfig.getInstance().getBoolean(CFG_DEBUG_API_ENABLED, false); + if (!enabled) { + log.warn("⚠️ Debug API отключены настройкой {}=false", CFG_DEBUG_API_ENABLED); + return; + } + DebugTokenProvider tokenProvider = DebugTokenProvider.loadFromProjectRoot(); addServlet(context, new DebugClientsServlet(tokenProvider), "/debug/ws/clients"); addServlet(context, new DebugConnectServlet(tokenProvider), "/debug/ws/connect"); addServlet(context, new DebugLogsServlet(tokenProvider), "/debug/ws/logs"); + log.info("✅ Debug API включены настройкой {}=true", CFG_DEBUG_API_ENABLED); } private static void addServlet(ServletContextHandler context, Servlet servlet, String path) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 7d887e0..336b5ab 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -17,3 +17,11 @@ server.info.extraInfo= webpush.vapid.public=BOdoWZndZRaNe9kyUFsJ5-xEfFABXNKennAKg15Z7ycAwUIQ7yDV_sIWWYJCwJriN4g9oU-CyJPrn1U6lfxuDbI webpush.vapid.private=3hCt7XxTvLzuoxinjT5QcKRQEBnGZHXn8ZilU31RPNE webpush.vapid.subject=mailto:admin@shine.local + +# ------------------------------------------------------------ +# Временные debug HTTP API для тестирования соединений +# true - endpoint'ы /debug/ws/* включены (только при наличии .debug-token) +# false - endpoint'ы /debug/ws/* полностью отключены +# Если параметр отсутствует, по умолчанию считается false +# ------------------------------------------------------------ +debug.tempApi.enabled=true