summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java16
-rw-r--r--src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt7
2 files changed, 22 insertions, 1 deletions
diff --git a/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java b/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java
index 7b631d8..07f16c5 100644
--- a/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java
+++ b/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java
@@ -127,7 +127,21 @@ public class GpasPseudonymGenerator implements Generator {
.orElseGet(ParametersParameterComponent::new).getValue();
// pseudonym
- return identifier.getSystem() + "|" + identifier.getValue();
+ return sanitizeValue(identifier.getValue());
+ }
+
+ /**
+ * Allow only filename friendly values
+ *
+ * @param psnValue GAPS pseudonym value
+ * @return cleaned up value
+ */
+ public static String sanitizeValue(String psnValue) {
+ // pattern to match forbidden characters
+ String forbiddenCharsRegex = "[\\\\/:*?\"<>|;]";
+
+ // Replace all forbidden characters with underscores
+ return psnValue.replaceAll(forbiddenCharsRegex, "_");
}
diff --git a/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt
index a30a328..4646ff6 100644
--- a/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt
+++ b/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt
@@ -71,6 +71,13 @@ class PseudonymizeServiceTest {
}
@Test
+ fun sanitizeFileName(@Mock generator: GpasPseudonymGenerator) {
+ val result= GpasPseudonymGenerator.sanitizeValue("l://a\\bs;1*2?3>")
+
+ assertThat(result).isEqualTo("l___a_bs_1_2_3_")
+ }
+
+ @Test
fun shouldUsePseudonymPrefixForBuiltin(@Mock generator: AnonymizingGenerator) {
doAnswer {
it.arguments[0]