From ade8a8ef38e99e4b8d1fe20799fa6794c917827f Mon Sep 17 00:00:00 2001 From: Evgeny Bardin <evgeny.bardin@external.mgm-cp.com> Date: Mon, 6 Jan 2025 16:01:06 +0100 Subject: [PATCH] OZG-7092 map all attribute keys --- .../token/saml/SamlAttributeService.java | 7 ++++++- .../token/saml/SamlAttributeServiceTest.java | 20 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/token-checker-server/src/main/java/de/ozgcloud/token/saml/SamlAttributeService.java b/token-checker-server/src/main/java/de/ozgcloud/token/saml/SamlAttributeService.java index 0b2d44e..a60402f 100644 --- a/token-checker-server/src/main/java/de/ozgcloud/token/saml/SamlAttributeService.java +++ b/token-checker-server/src/main/java/de/ozgcloud/token/saml/SamlAttributeService.java @@ -177,6 +177,11 @@ public class SamlAttributeService { } TokenAttribute buildTokenAttribute(Map.Entry<String, String> attribute) { - return TokenAttribute.builder().name(attribute.getKey()).value(attribute.getValue()).build(); + return TokenAttribute.builder().name(getMappedKey(attribute.getKey())).value(attribute.getValue()).build(); + } + + String getMappedKey(String attributeKey) { + return tokenValidationProperty.getMappings().entrySet().stream().filter(entry -> StringUtils.equals(entry.getValue(), attributeKey)) + .map(Map.Entry::getKey).findFirst().orElse(attributeKey); } } diff --git a/token-checker-server/src/test/java/de/ozgcloud/token/saml/SamlAttributeServiceTest.java b/token-checker-server/src/test/java/de/ozgcloud/token/saml/SamlAttributeServiceTest.java index c8cf4fd..ca2d61a 100644 --- a/token-checker-server/src/test/java/de/ozgcloud/token/saml/SamlAttributeServiceTest.java +++ b/token-checker-server/src/test/java/de/ozgcloud/token/saml/SamlAttributeServiceTest.java @@ -793,4 +793,24 @@ class SamlAttributeServiceTest { assertThat(result).usingRecursiveComparison().isEqualTo(TokenAttributeTestFactory.create()); } } + + @Nested + class TestGetMappedKey { + + @Test + void shouldReturnDefaultKey() { + var result = service.getMappedKey(TokenAttributeTestFactory.VALUE); + + assertThat(result).isEqualTo(TokenAttributeTestFactory.VALUE); + } + + @Test + void shouldReturnMappedKey() { + when(tokenValidationProperty.getMappings()).thenReturn(Map.of(TokenAttributeTestFactory.NAME, TokenAttributeTestFactory.VALUE)); + + var result = service.getMappedKey(TokenAttributeTestFactory.VALUE); + + assertThat(result).isEqualTo(TokenAttributeTestFactory.NAME); + } + } } \ No newline at end of file -- GitLab