summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2024-01-12 16:55:18 +0100
committerPaul-Christian Volkmer2024-01-12 16:55:18 +0100
commit7ac151202a6ea06af6ea4d0f712e3e84f4daff76 (patch)
tree484f8bab3e84a27a5fc8e20d010cae7bdde687c2
parent5d9d47c2df01049a3738acf9b0ae47f75fda913d (diff)
refactor: Use config new pseudonym generator config param
This deprecates the old param: * `APP_PSEUDONYMIZER`: deprecated * `APP_PSEUDONYM_GENERATOR`: has precedence
-rw-r--r--README.md3
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt8
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt19
3 files changed, 27 insertions, 3 deletions
diff --git a/README.md b/README.md
index d4c8167..cd993a8 100644
--- a/README.md
+++ b/README.md
@@ -36,6 +36,9 @@ Ist diese nicht gesetzt. wird intern eine Anonymisierung der Patienten-ID vorgen
* `APP_PSEUDONYMIZE_PREFIX`: Standortbezogenes Prefix - `UNKNOWN`, wenn nicht gesetzt
* `APP_PSEUDONYMIZE_GENERATOR`: `BUILDIN` oder `GPAS` - `BUILDIN`, wenn nicht gesetzt
+**Hinweise**: Der alte Konfigurationsparameter `APP_PSEUDONYMIZER` mit den Werten `GPAS` oder `BUILDIN` sollte nicht
+mehr verwendet werden.
+
#### Eingebaute Anonymisierung
Wurde keine oder die Verwendung der eingebauten Anonymisierung konfiguriert, so wird für die Patienten-ID der
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt
index 9c92869..08a45bb 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt
@@ -20,11 +20,16 @@
package dev.dnpm.etl.processor.config
import org.springframework.boot.context.properties.ConfigurationProperties
+import org.springframework.boot.context.properties.DeprecatedConfigurationProperty
@ConfigurationProperties(AppConfigProperties.NAME)
data class AppConfigProperties(
var bwhcUri: String?,
- var generator: PseudonymGenerator = PseudonymGenerator.BUILDIN,
+ @get:DeprecatedConfigurationProperty(
+ reason = "Deprecated in favor of 'app.pseudonymize.generator'",
+ replacement = "app.pseudonymize.generator"
+ )
+ var pseudonymizer: PseudonymGenerator = PseudonymGenerator.BUILDIN,
var transformations: List<TransformationProperties> = listOf()
) {
companion object {
@@ -34,6 +39,7 @@ data class AppConfigProperties(
@ConfigurationProperties(PseudonymizeConfigProperties.NAME)
data class PseudonymizeConfigProperties(
+ var generator: PseudonymGenerator = PseudonymGenerator.BUILDIN,
val prefix: String = "UNKNOWN",
) {
companion object {
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt
index 42632aa..d8604be 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt
@@ -28,6 +28,7 @@ import dev.dnpm.etl.processor.pseudonym.PseudonymizeService
import dev.dnpm.etl.processor.services.Transformation
import dev.dnpm.etl.processor.services.TransformationService
import org.slf4j.LoggerFactory
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.annotation.Bean
@@ -54,18 +55,32 @@ class AppConfiguration {
private val logger = LoggerFactory.getLogger(AppConfiguration::class.java)
- @ConditionalOnProperty(value = ["app.pseudonymizer"], havingValue = "GPAS")
+ @ConditionalOnProperty(value = ["app.pseudonymize.generator"], havingValue = "GPAS")
@Bean
fun gpasPseudonymGenerator(configProperties: GPasConfigProperties): Generator {
return GpasPseudonymGenerator(configProperties)
}
- @ConditionalOnProperty(value = ["app.pseudonymizer"], havingValue = "BUILDIN", matchIfMissing = true)
+ @ConditionalOnProperty(value = ["app.pseudonymize.generator"], havingValue = "BUILDIN")
@Bean
fun buildinPseudonymGenerator(): Generator {
return AnonymizingGenerator()
}
+ @ConditionalOnProperty(value = ["app.pseudonymizer"], havingValue = "GPAS")
+ @ConditionalOnMissingBean
+ @Bean
+ fun gpasPseudonymGeneratorOnDeprecatedProperty(configProperties: GPasConfigProperties): Generator {
+ return GpasPseudonymGenerator(configProperties)
+ }
+
+ @ConditionalOnProperty(value = ["app.pseudonymizer"], havingValue = "BUILDIN")
+ @ConditionalOnMissingBean
+ @Bean
+ fun buildinPseudonymGeneratorOnDeprecatedProperty(): Generator {
+ return AnonymizingGenerator()
+ }
+
@Bean
fun pseudonymizeService(
generator: Generator,