From 64ebb737d153c34f52e64d060cf9203bccef854b Mon Sep 17 00:00:00 2001 From: Jens Reinemann Date: Mon, 18 May 2026 14:13:52 +0200 Subject: [PATCH] chore: add ADMIN_MESSAGE_TOKEN to VPS docker-compose config --- .../data/repository/MessageRepositoryImpl.kt | 19 +++++-------------- gradle/libs.versions.toml | 1 + server/build.gradle.kts | 1 + .../de/bollwerk/server/plugins/Routing.kt | 4 +++- 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/de/bollwerk/app/data/repository/MessageRepositoryImpl.kt b/app/src/main/java/de/bollwerk/app/data/repository/MessageRepositoryImpl.kt index 68337bb..2ff6ec5 100644 --- a/app/src/main/java/de/bollwerk/app/data/repository/MessageRepositoryImpl.kt +++ b/app/src/main/java/de/bollwerk/app/data/repository/MessageRepositoryImpl.kt @@ -70,20 +70,11 @@ internal class MessageRepositoryImpl @Inject constructor( when (event) { is WebSocketEvent.NewMessage -> { val msg = event.message - val decryptedBody = when { - msg.body.startsWith("[PLAINTEXT] ") -> { - // Admin test messages – remove prefix - msg.body.removePrefix("[PLAINTEXT] ") - } - else -> { - // E2EE messages – decrypt - try { - e2eeKeyManager.decryptMessage(msg.body) - } catch (e: Exception) { - Log.e(TAG, "E2EE: Failed to decrypt message ${msg.id}", e) - "[Entschlüsselung fehlgeschlagen]" - } - } + val decryptedBody = try { + e2eeKeyManager.decryptMessage(msg.body) + } catch (e: Exception) { + Log.e(TAG, "E2EE: Failed to decrypt message ${msg.id}", e) + "[Entschlüsselung fehlgeschlagen]" } dao.upsert( MessageEntity( diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a8d969b..a743bc7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -80,6 +80,7 @@ exposed-core = { group = "org.jetbrains.exposed", name = "exposed-core", version exposed-jdbc = { group = "org.jetbrains.exposed", name = "exposed-jdbc", version.ref = "exposed" } h2-database = { group = "com.h2database", name = "h2", version.ref = "h2" } tink-android = { module = "com.google.crypto.tink:tink-android", version.ref = "tink" } +tink = { module = "com.google.crypto.tink:tink", version.ref = "tink" } postgresql = { group = "org.postgresql", name = "postgresql", version.ref = "postgresql" } hikaricp = { group = "com.zaxxer", name = "HikariCP", version.ref = "hikaricp" } diff --git a/server/build.gradle.kts b/server/build.gradle.kts index 85bbbe2..8ba0f4d 100644 --- a/server/build.gradle.kts +++ b/server/build.gradle.kts @@ -45,6 +45,7 @@ dependencies { implementation(libs.postgresql) implementation(libs.hikaricp) implementation(libs.flyway.core) + implementation(libs.tink) testImplementation(libs.h2.database) testImplementation(libs.ktor.server.test.host) diff --git a/server/src/main/kotlin/de/bollwerk/server/plugins/Routing.kt b/server/src/main/kotlin/de/bollwerk/server/plugins/Routing.kt index 9ca7146..8182b5e 100644 --- a/server/src/main/kotlin/de/bollwerk/server/plugins/Routing.kt +++ b/server/src/main/kotlin/de/bollwerk/server/plugins/Routing.kt @@ -12,6 +12,7 @@ import de.bollwerk.server.routes.userRoutes import de.bollwerk.server.routes.versionRoutes import de.bollwerk.server.routes.webSocketRoutes import de.bollwerk.server.security.JwtService +import de.bollwerk.server.service.AdminMessageService import de.bollwerk.server.store.VersionStore import de.bollwerk.server.websocket.WebSocketManager import io.ktor.http.* @@ -35,6 +36,7 @@ internal fun Application.configureRouting( messageRepository: MessageRepository = MessageRepository(), jwtService: JwtService = JwtService(environment.config), wsManager: WebSocketManager = WebSocketManager(), + adminMessageService: AdminMessageService = AdminMessageService(userRepository), backupDir: File = File("/backups"), versionStore: VersionStore? = null ) { @@ -93,7 +95,7 @@ internal fun Application.configureRouting( adminRoutes(userRepository, inventoryRepository, backupDir) } rateLimit(RATE_LIMIT_MESSAGES) { - messageRoutes(messageRepository, userRepository, wsManager) + messageRoutes(messageRepository, userRepository, wsManager, adminMessageService) } userRoutes(userRepository, wsManager) }