From 4231cc74cfd40a3f7e1630a5a0fec0a13207dc48 Mon Sep 17 00:00:00 2001 From: Gregor Lohaus Date: Wed, 25 Feb 2026 17:50:36 +0100 Subject: [PATCH] ssl config --- .../gtransfer/config/ConfigRuntimeHints.java | 10 ++++++++++ .../gtransfer/config/DefaultConfig.java | 9 +++++++++ .../gtransfer/config/types/Config.java | 3 +++ .../gtransfer/config/types/ServerConfig.java | 13 +++++++++++++ .../gtransfer/config/types/SslConfig.java | 14 ++++++++++++++ 5 files changed, 49 insertions(+) create mode 100644 Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/ServerConfig.java create mode 100644 Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/SslConfig.java diff --git a/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/ConfigRuntimeHints.java b/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/ConfigRuntimeHints.java index 94fe489..28fa7cb 100644 --- a/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/ConfigRuntimeHints.java +++ b/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/ConfigRuntimeHints.java @@ -55,6 +55,16 @@ public class ConfigRuntimeHints implements RuntimeHintsRegistrar { MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.ACCESS_DECLARED_FIELDS, MemberCategory.ACCESS_PUBLIC_FIELDS); + hints.reflection().registerType(ServerConfig.class, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, + MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, + MemberCategory.ACCESS_DECLARED_FIELDS, + MemberCategory.ACCESS_PUBLIC_FIELDS); + hints.reflection().registerType(SslConfig.class, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, + MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, + MemberCategory.ACCESS_DECLARED_FIELDS, + MemberCategory.ACCESS_PUBLIC_FIELDS); hints.reflection().registerType(TypeAdapter.class, MemberCategory.ACCESS_DECLARED_FIELDS, MemberCategory.ACCESS_PUBLIC_FIELDS); diff --git a/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/DefaultConfig.java b/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/DefaultConfig.java index 52940b0..e611888 100644 --- a/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/DefaultConfig.java +++ b/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/DefaultConfig.java @@ -6,8 +6,10 @@ import com.gregor_lohaus.gtransfer.config.types.Config; import com.gregor_lohaus.gtransfer.config.types.DataSourceConfig; import com.gregor_lohaus.gtransfer.config.types.JpaConfig; import com.gregor_lohaus.gtransfer.config.types.MultipartConfig; +import com.gregor_lohaus.gtransfer.config.types.ServerConfig; import com.gregor_lohaus.gtransfer.config.types.ServletConfig; import com.gregor_lohaus.gtransfer.config.types.SpringConfig; +import com.gregor_lohaus.gtransfer.config.types.SslConfig; import com.gregor_lohaus.gtransfer.config.types.StorageService; import com.gregor_lohaus.gtransfer.config.types.StorageServiceType; import com.gregor_lohaus.gtransfer.config.types.UploadConfig; @@ -44,6 +46,13 @@ public class DefaultConfig { c.springConfig = sc; + ServerConfig svc2 = new ServerConfig(); + svc2.port = 8080; + SslConfig ssl = new SslConfig(); + ssl.enabled = false; + svc2.sslConfig = ssl; + c.serverConfig = svc2; + UploadConfig uc = new UploadConfig(); uc.maxDownloadLimit = 100; uc.maxExpiryDays = 30; diff --git a/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/Config.java b/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/Config.java index f5f3284..53988b5 100644 --- a/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/Config.java +++ b/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/Config.java @@ -9,6 +9,9 @@ public class Config implements TomlSerializable { @Nested(name = "spring") @NoPrefix public SpringConfig springConfig; + @Nested(name = "server") + @NoPrefix + public ServerConfig serverConfig; @Nested(name = "storageService") public StorageService storageService; @Nested(name = "upload") diff --git a/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/ServerConfig.java b/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/ServerConfig.java new file mode 100644 index 0000000..eaad162 --- /dev/null +++ b/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/ServerConfig.java @@ -0,0 +1,13 @@ +package com.gregor_lohaus.gtransfer.config.types; + +import com.gregor_lohaus.gtransfer.config.annotations.Nested; +import com.gregor_lohaus.gtransfer.config.annotations.Property; + +import io.github.wasabithumb.jtoml.serial.TomlSerializable; + +public class ServerConfig implements TomlSerializable { + @Property(name = "port") + public Integer port; + @Nested(name = "ssl") + public SslConfig sslConfig; +} diff --git a/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/SslConfig.java b/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/SslConfig.java new file mode 100644 index 0000000..e299bf2 --- /dev/null +++ b/Backend/src/main/java/com/gregor_lohaus/gtransfer/config/types/SslConfig.java @@ -0,0 +1,14 @@ +package com.gregor_lohaus.gtransfer.config.types; + +import com.gregor_lohaus.gtransfer.config.annotations.Property; + +import io.github.wasabithumb.jtoml.serial.TomlSerializable; + +public class SslConfig implements TomlSerializable { + @Property(name = "enabled") + public Boolean enabled; + @Property(name = "certificate") + public String certificate; + @Property(name = "certificate-private-key") + public String certificatePrivateKey; +}