From 50d1a814586e0d622270fc1c0b821c2169c27f0a Mon Sep 17 00:00:00 2001 From: Joe Grandja Date: Thu, 30 Nov 2017 09:17:42 -0500 Subject: [PATCH] AbstractAuthenticationToken.getName() uses UserDetails.getUsername() Fixes gh-4877 --- .../authentication/AbstractAuthenticationToken.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/springframework/security/authentication/AbstractAuthenticationToken.java b/core/src/main/java/org/springframework/security/authentication/AbstractAuthenticationToken.java index e758f1bf8f..1fa0ba60ce 100644 --- a/core/src/main/java/org/springframework/security/authentication/AbstractAuthenticationToken.java +++ b/core/src/main/java/org/springframework/security/authentication/AbstractAuthenticationToken.java @@ -26,6 +26,7 @@ import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.CredentialsContainer; import org.springframework.security.core.AuthenticatedPrincipal; import org.springframework.security.core.authority.AuthorityUtils; +import org.springframework.security.core.userdetails.UserDetails; /** * Base class for Authentication objects. @@ -79,12 +80,14 @@ public abstract class AbstractAuthenticationToken implements Authentication, } public String getName() { + if (this.getPrincipal() instanceof UserDetails) { + return ((UserDetails) this.getPrincipal()).getUsername(); + } if (this.getPrincipal() instanceof AuthenticatedPrincipal) { return ((AuthenticatedPrincipal) this.getPrincipal()).getName(); } - - if (getPrincipal() instanceof Principal) { - return ((Principal) getPrincipal()).getName(); + if (this.getPrincipal() instanceof Principal) { + return ((Principal) this.getPrincipal()).getName(); } return (this.getPrincipal() == null) ? "" : this.getPrincipal().toString();