From b92dfdb12770ba51f04271f17670b38693f01105 Mon Sep 17 00:00:00 2001 From: Aurora Lahtela <24460436+AuroraLS3@users.noreply.github.com> Date: Tue, 10 Oct 2023 10:03:50 +0300 Subject: [PATCH] Fix webserver disabling always by accident --- .../src/main/java/com/djrapitops/plan/PlanSystem.java | 2 +- .../djrapitops/plan/delivery/webserver/Addresses.java | 10 +++++++++- .../webserver/NonProxyWebserverDisableChecker.java | 11 ++++++++--- .../plan/settings/locale/lang/PluginLang.java | 3 +++ 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/Plan/common/src/main/java/com/djrapitops/plan/PlanSystem.java b/Plan/common/src/main/java/com/djrapitops/plan/PlanSystem.java index 1a4abf601..7b4f2f19d 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/PlanSystem.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/PlanSystem.java @@ -189,7 +189,7 @@ public class PlanSystem implements SubSystem { // Disables Webserver if Proxy is detected in the database if (serverInfo.getServer().isNotProxy()) { processing.submitNonCritical(new NonProxyWebserverDisableChecker( - configSystem.getConfig(), webServerSystem.getAddresses(), webServerSystem, logger, errorLogger + configSystem.getConfig(), localeSystem.getLocale(), webServerSystem.getAddresses(), webServerSystem, logger, errorLogger )); } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/Addresses.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/Addresses.java index f8d3cb757..a12068ae4 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/Addresses.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/Addresses.java @@ -72,7 +72,7 @@ public class Addresses { } public Optional getMainAddress() { - Optional proxyServerAddress = getProxyServerAddress(); + Optional proxyServerAddress = getAnyValidServerAddress(); return proxyServerAddress.isPresent() ? proxyServerAddress : getAccessAddress(); } @@ -105,6 +105,14 @@ public class Addresses { } public Optional getProxyServerAddress() { + return dbSystem.getDatabase().query(ServerQueries.fetchProxyServers()) + .stream() + .map(Server::getWebAddress) + .filter(this::isValidAddress) + .findAny(); + } + + public Optional getAnyValidServerAddress() { return dbSystem.getDatabase().query(ServerQueries.fetchPlanServerInformationCollection()) .stream() .map(Server::getWebAddress) diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/NonProxyWebserverDisableChecker.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/NonProxyWebserverDisableChecker.java index 6555ab817..841ff0555 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/NonProxyWebserverDisableChecker.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/NonProxyWebserverDisableChecker.java @@ -20,6 +20,8 @@ import com.djrapitops.plan.delivery.webserver.http.WebServer; import com.djrapitops.plan.settings.config.PlanConfig; import com.djrapitops.plan.settings.config.paths.PluginSettings; import com.djrapitops.plan.settings.config.paths.WebserverSettings; +import com.djrapitops.plan.settings.locale.Locale; +import com.djrapitops.plan.settings.locale.lang.PluginLang; import com.djrapitops.plan.utilities.logging.ErrorContext; import com.djrapitops.plan.utilities.logging.ErrorLogger; import net.playeranalytics.plugin.server.PluginLogger; @@ -34,6 +36,7 @@ import java.io.IOException; public class NonProxyWebserverDisableChecker implements Runnable { private final PlanConfig config; + private final Locale locale; private final Addresses addresses; private final WebServerSystem webServerSystem; private final PluginLogger logger; @@ -41,12 +44,14 @@ public class NonProxyWebserverDisableChecker implements Runnable { public NonProxyWebserverDisableChecker( PlanConfig config, + Locale locale, Addresses addresses, WebServerSystem webServerSystem, PluginLogger logger, ErrorLogger errorLogger ) { this.config = config; + this.locale = locale; this.addresses = addresses; this.webServerSystem = webServerSystem; this.logger = logger; @@ -58,7 +63,7 @@ public class NonProxyWebserverDisableChecker implements Runnable { if (config.isFalse(PluginSettings.PROXY_COPY_CONFIG)) return; addresses.getProxyServerAddress().ifPresent(address -> { - logger.info("Proxy server detected in the database - Proxy Webserver address is '" + address + "'."); + logger.info(locale.getString(PluginLang.ENABLE_NOTIFY_PROXY_ADDRESS, address)); WebServer webServer = webServerSystem.getWebServer(); if (webServer.isEnabled()) { @@ -68,12 +73,12 @@ public class NonProxyWebserverDisableChecker implements Runnable { } private void disableWebserver(WebServer webServer) { - logger.warn("Disabling Webserver on this server - You can override this behavior by setting '" + PluginSettings.PROXY_COPY_CONFIG.getPath() + "' to false."); + logger.warn(locale.getString(PluginLang.ENABLE_NOTIFY_PROXY_DISABLED_WEBSERVER, PluginSettings.PROXY_COPY_CONFIG.getPath())); webServer.disable(); try { config.set(WebserverSettings.DISABLED, true); config.save(); - logger.warn("Note: Set '" + WebserverSettings.DISABLED.getPath() + "' to true"); + logger.warn(locale.getString(PluginLang.ENABLE_NOTIFY_SETTING_CHANGE, WebserverSettings.DISABLED.getPath(), "true")); } catch (IOException e) { errorLogger.warn(e, ErrorContext.builder() .whatToDo("Set '" + WebserverSettings.DISABLED.getPath() + "' to true manually.") diff --git a/Plan/common/src/main/java/com/djrapitops/plan/settings/locale/lang/PluginLang.java b/Plan/common/src/main/java/com/djrapitops/plan/settings/locale/lang/PluginLang.java index 61ee1ea62..7cef64744 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/settings/locale/lang/PluginLang.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/settings/locale/lang/PluginLang.java @@ -29,6 +29,9 @@ public enum PluginLang implements Lang { API_ADD_RESOURCE_CSS("plugin.apiCSSAdded", "API - css+", "PageExtension: ${0} added stylesheet(s) to ${1}, ${2}"), RELOAD_LOCALE("plugin.localeReloaded", "API - locale reload", "Custom locale.yml was modified so it was reloaded and is now in use."), + ENABLE_NOTIFY_PROXY_ADDRESS("plugin.enable.notify.proxyAddress", "Enable - Notify proxy address", "Proxy server detected in the database - Proxy Webserver address is '${0}'."), + ENABLE_NOTIFY_PROXY_DISABLED_WEBSERVER("plugin.enable.notify.proxyDisabledWebserver", "Enable - Notify proxy disabled webserver", "Disabling Webserver on this server - You can override this behavior by setting '${0}' to false."), + ENABLE_NOTIFY_SETTING_CHANGE("plugin.enable.notify.settingChange", "Enable - Notify settingChange", "Note: Set '${0}' to ${1}"), ENABLE_NOTIFY_STORING_PRESERVED_SESSIONS("plugin.enable.notify.storeSessions", "Enable - Storing preserved sessions", "Storing sessions that were preserved before previous shutdown."), ENABLE_NOTIFY_EMPTY_IP("plugin.enable.notify.emptyIP", "Enable - Notify Empty IP", "IP in server.properties is empty & Alternative_IP is not in use. Incorrect links might be given!"), ENABLE_NOTIFY_BAD_IP("plugin.enable.notify.badIP", "Enable - Notify Bad IP", "0.0.0.0 is not a valid address, set up Alternative_IP settings. Incorrect links might be given!"),