Skip to content
Snippets Groups Projects
Commit 5de9e4f6 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-5687 Verwende Attributname und URN statt friendlyName zum ermitteln der...

OZG-5687 Verwende Attributname und URN statt friendlyName zum ermitteln der PostfachId aus dem SAML Token um kompatible zu anderen SAML Idps zu sein
parent dae911b9
Branches
Tags
No related merge requests found
/* /*
* Copyright (c) 2024. Das Land Schleswig-Holstein vertreten durch den * Copyright (c) 2024. Das Land Schleswig-Holstein
* Ministerpräsidenten des Landes Schleswig-Holstein * vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei * Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
* *
* Lizenziert unter der EUPL, Version 1.2 oder - sobald * Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden - * diese von der Europäischen Kommission genehmigt wurden -
...@@ -56,7 +55,7 @@ import lombok.RequiredArgsConstructor; ...@@ -56,7 +55,7 @@ import lombok.RequiredArgsConstructor;
class Saml2Decrypter { class Saml2Decrypter {
private final BayernIdSamlConfiguration configuration; 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 Decrypter decrypter;
private static final EncryptedKeyResolver encryptedKeyResolver = new ChainingEncryptedKeyResolver( private static final EncryptedKeyResolver encryptedKeyResolver = new ChainingEncryptedKeyResolver(
Arrays.asList(new InlineEncryptedKeyResolver(), new EncryptedElementTypeEncryptedKeyResolver(), Arrays.asList(new InlineEncryptedKeyResolver(), new EncryptedElementTypeEncryptedKeyResolver(),
...@@ -91,14 +90,14 @@ class Saml2Decrypter { ...@@ -91,14 +90,14 @@ class Saml2Decrypter {
String decryptPostfachId(Response response) { String decryptPostfachId(Response response) {
decryptResponseElements(response); decryptResponseElements(response);
var samlAssertion = response.getAssertions().get(0); var samlAssertion = response.getAssertions().getFirst();
var statements = (AttributeStatement) samlAssertion.getStatements().get(1); var statements = (AttributeStatement) samlAssertion.getStatements().get(1);
var attributes = statements.getAttributes(); 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 -> { return postfachIdOptional.map(postfachIdAttribute -> {
var values = postfachIdAttribute.getAttributeValues(); var values = postfachIdAttribute.getAttributeValues();
return ((XSString) values.get(0)).getValue(); return ((XSString) values.getFirst()).getValue();
}).orElseThrow(); }).orElseThrow();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment