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 0b2d44ee425e67c04024e2a1523a2d822c7545b7..a60402f0cdfa9962226f6bc375a134fd3c3f5b7d 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 c8cf4fd79b869a07e1304da08af6eac92e33c935..ca2d61ac64384215c7d05a7af64f74f3165d358f 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