From cf5b59cf58d15ca8cb64998fda9cb907c22391bd Mon Sep 17 00:00:00 2001 From: Emmanuel Durin Date: Tue, 2 Apr 2024 21:41:39 +0200 Subject: [PATCH] fixed issue for authenticated by email users who change their email --- .../security/ldap/extended/DemultiplexingUsersApi.java | 7 ------- .../ldap/extended/ExtendedLdapAuthenticationProvider.java | 2 +- .../extended/GeorchestraLdapAuthenticatedUserMapper.java | 4 ---- 3 files changed, 1 insertion(+), 12 deletions(-) diff --git a/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/DemultiplexingUsersApi.java b/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/DemultiplexingUsersApi.java index 66b7a53f..a53e4cd0 100644 --- a/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/DemultiplexingUsersApi.java +++ b/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/DemultiplexingUsersApi.java @@ -76,13 +76,6 @@ public Optional findByUsername(@NonNull String serviceN return extend(serviceName, user); } - public Optional findByEmail(@NonNull String serviceName, @NonNull String email) { - UsersApi usersApi = usersByConfigName.get(serviceName); - Objects.requireNonNull(usersApi, () -> "No UsersApi found for config named " + serviceName); - Optional user = usersApi.findByEmail(email); - return extend(serviceName, user); - } - private Optional extend(String serviceName, Optional user) { OrganizationsApi orgsApi = orgsByConfigName.get(serviceName); Objects.requireNonNull(orgsApi, () -> "No OrganizationsApi found for config named " + serviceName); diff --git a/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/ExtendedLdapAuthenticationProvider.java b/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/ExtendedLdapAuthenticationProvider.java index b846699a..921e2262 100644 --- a/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/ExtendedLdapAuthenticationProvider.java +++ b/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/ExtendedLdapAuthenticationProvider.java @@ -58,7 +58,7 @@ public Authentication authenticate(Authentication authentication) throws Authent } Assert.notNull(password, "Null password was supplied in authentication token"); DirContextOperations userData = doAuthentication(userToken); - UserDetails user = this.userDetailsContextMapper.mapUserFromContext(userData, authentication.getName(), + UserDetails user = this.userDetailsContextMapper.mapUserFromContext(userData, username, loadUserAuthorities(userData, authentication.getName(), (String) authentication.getCredentials())); return createSuccessfulAuthentication(userToken, user); diff --git a/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/GeorchestraLdapAuthenticatedUserMapper.java b/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/GeorchestraLdapAuthenticatedUserMapper.java index 8235aa69..f3ad1098 100644 --- a/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/GeorchestraLdapAuthenticatedUserMapper.java +++ b/gateway/src/main/java/org/georchestra/gateway/security/ldap/extended/GeorchestraLdapAuthenticatedUserMapper.java @@ -68,10 +68,6 @@ Optional map(GeorchestraUserNamePasswordAuthenticationToken tok final String username = principal.getUsername(); Optional user = users.findByUsername(ldapConfigName, username); - if (user.isEmpty()) { - user = users.findByEmail(ldapConfigName, username); - } - return user.map(u -> fixPrefixedRoleNames(u, token)); }