From 5de9e4f67360759103ceeb16a84d31b25aa63ca2 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 28 Jun 2024 11:21:55 +0200
Subject: [PATCH] OZG-5687 Verwende Attributname und URN statt friendlyName zum
 ermitteln der PostfachId aus dem SAML Token um kompatible zu anderen SAML
 Idps zu sein

---
 .../antragraum/Saml2Decrypter.java            | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Decrypter.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Decrypter.java
index 9728ddb..3df0463 100644
--- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Decrypter.java
+++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Decrypter.java
@@ -1,8 +1,7 @@
 /*
- * Copyright (c) 2024. Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ * Copyright (c) 2024.  Das Land Schleswig-Holstein
+ * vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
  *
  * Lizenziert unter der EUPL, Version 1.2 oder - sobald
  * diese von der Europäischen Kommission genehmigt wurden -
@@ -56,11 +55,11 @@ import lombok.RequiredArgsConstructor;
 class Saml2Decrypter {
 	private final BayernIdSamlConfiguration configuration;
 
-	public static final String LEGACY_POSTKORB_HANDLE_KEY = "legacyPostkorbHandle";
+	public static final String LEGACY_POSTKORB_HANDLE_KEY = "urn:oid:2.5.4.18";
 	private Decrypter decrypter;
 	private static final EncryptedKeyResolver encryptedKeyResolver = new ChainingEncryptedKeyResolver(
-			Arrays.asList(new InlineEncryptedKeyResolver(), new EncryptedElementTypeEncryptedKeyResolver(),
-					new SimpleRetrievalMethodEncryptedKeyResolver()));
+	  Arrays.asList(new InlineEncryptedKeyResolver(), new EncryptedElementTypeEncryptedKeyResolver(),
+		new SimpleRetrievalMethodEncryptedKeyResolver()));
 
 	@PostConstruct
 	void init() {
@@ -91,14 +90,14 @@ class Saml2Decrypter {
 	String decryptPostfachId(Response response) {
 		decryptResponseElements(response);
 
-		var samlAssertion = response.getAssertions().get(0);
+		var samlAssertion = response.getAssertions().getFirst();
 		var statements = (AttributeStatement) samlAssertion.getStatements().get(1);
 		var attributes = statements.getAttributes();
-		var postfachIdOptional = attributes.stream().filter(attribute -> LEGACY_POSTKORB_HANDLE_KEY.equals(attribute.getFriendlyName())).findFirst();
+		var postfachIdOptional = attributes.stream().filter(attribute -> LEGACY_POSTKORB_HANDLE_KEY.equals(attribute.getName())).findFirst();
 
 		return postfachIdOptional.map(postfachIdAttribute -> {
 			var values = postfachIdAttribute.getAttributeValues();
-			return ((XSString) values.get(0)).getValue();
+			return ((XSString) values.getFirst()).getValue();
 		}).orElseThrow();
 
 	}
-- 
GitLab