From 441bff37839440d1666a3a3726028abd5c696cb1 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Thu, 11 Jan 2024 15:00:26 +0100 Subject: [PATCH] feat: use password with encoding prefix --- README.md | 8 ++++++++ .../dnpm/etl/processor/config/AppSecurityConfiguration.kt | 5 +++-- src/main/resources/application-dev.yml | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f3fe79f..d4c8167 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,14 @@ einem erfolgreichen Login erreichbar sind. * `APP_SECURITY_ADMIN_USER`: Muss angegeben werden zur Aktivierung der Zugriffsbeschränkung. * `APP_SECURITY_ADMIN_PASSWORD`: Das Passwort für den Administrator (Empfohlen). +Ein Administrator-Passwort muss inklusive des Encoding-Prefixes vorliegen. + +Hier Beispiele für das Beispielpasswort `very-secret`: + +* `{noop}very-secret` (Das Passwort liegt im Klartext vor - nicht empfohlen!) +* `{bcrypt}$2y$05$CCkfsMr/wbTleMyjVIK8g.Aa3RCvrvoLXVAsL.f6KeouS88vXD9b6` +* `{sha256}9a34717f0646b5e9cfcba70055de62edb026ff4f68671ba3db96aa29297d2df5f1a037d58c745657` + Wird kein Administrator-Passwort angegeben, wird ein zufälliger Wert generiert und beim Start der Anwendung in den Logs angezeigt. diff --git a/src/main/kotlin/dev/dnpm/etl/processor/config/AppSecurityConfiguration.kt b/src/main/kotlin/dev/dnpm/etl/processor/config/AppSecurityConfiguration.kt index 68eb629..e0cff94 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/config/AppSecurityConfiguration.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/config/AppSecurityConfiguration.kt @@ -58,16 +58,17 @@ class AppSecurityConfiguration( } else { securityConfigProperties.adminUser } + val adminPassword = if (securityConfigProperties.adminPassword.isNullOrBlank()) { val random = UUID.randomUUID().toString() logger.warn("Using random Admin Passwort: {}", random) - random + passwordEncoder.encode(random) } else { securityConfigProperties.adminPassword } val user: UserDetails = User.withUsername(adminUser) - .password(passwordEncoder.encode(adminPassword)) + .password(adminPassword) .roles("ADMIN") .build() diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index d538338..3d4827c 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -12,7 +12,7 @@ app: servers: localhost:9094 #security: # admin-user: admin - # admin-password: very-secret + # admin-password: "{noop}very-secret" server: port: 8000