From c83ecc28e20ed44da21b7c3b9172f0cda5a50d12 Mon Sep 17 00:00:00 2001 From: Dominik Frantisek Bucik Date: Wed, 6 Apr 2022 12:34:56 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Fix=20storing=20SavedUser?= =?UTF-8?q?Auth?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Caused SAML claim sources not to work in USERINFO and ID_TOKEN --- .../ics/oauth2/model/SavedUserAuthentication.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/model/SavedUserAuthentication.java b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/model/SavedUserAuthentication.java index 4ab43454f..1b0d0ecde 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/model/SavedUserAuthentication.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/model/SavedUserAuthentication.java @@ -100,17 +100,21 @@ public class SavedUserAuthentication implements Authentication { setAuthorities(new HashSet<>(src.getAuthorities())); setAuthenticated(src.isAuthenticated()); if (src instanceof SavedUserAuthentication) { - this.setAcr(((SavedUserAuthentication) src).getAcr()); + SavedUserAuthentication source = (SavedUserAuthentication) src; + this.setAcr(source.getAcr()); + this.setAuthenticationDetails(source.getAuthenticationDetails()); } else if (src instanceof ExpiringUsernameAuthenticationToken) { ExpiringUsernameAuthenticationToken token = (ExpiringUsernameAuthenticationToken) src; - this.acr = ((SamlPrincipal) token.getPrincipal()).getSamlCredential() + SAMLCredential credential = ((SamlPrincipal) token.getPrincipal()).getSamlCredential(); + this.setAcr(credential .getAuthenticationAssertion() .getAuthnStatements().stream() .map(AuthnStatement::getAuthnContext) .map(AuthnContext::getAuthnContextClassRef) .map(AuthnContextClassRef::getAuthnContextClassRef) - .collect(Collectors.joining()); - this.authenticationDetails = new SamlAuthenticationDetails((SAMLCredential) src.getCredentials()); + .collect(Collectors.joining()) + ); + this.setAuthenticationDetails(new SamlAuthenticationDetails(credential)); } }