Skip to content
Snippets Groups Projects
Commit 7cf23844 authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-5687 Verwende Attributname und URN statt friendlyName...

Merge pull request 'OZG-5687 Verwende Attributname und URN statt friendlyName zum ermitteln der PostfachId aus dem SAML Token um kompatible zu anderen SAML Idps zu sein' (#17) from OZG-5687-postkorb-urn-statt-friendlyname into master

Reviewed-on: https://git.ozg-sh.de/ozgcloud-app/nachrichten-manager/pulls/17


Reviewed-by: default avatarOZGCloud <ozgcloud@mgm-tp.com>
parents 97b1e214 117c7bc5
No related branches found
No related tags found
No related merge requests found
/*
* 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();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment