Согласно документации Spring
public interface Authentication extends Principal, Serializable
Представляет токен для запроса аутентификации или для аутентифицированного участника после того, как запрос был обработан методом AuthenticationManager.authenticate (Authentication). После того, как запрос был аутентифицирован, аутентификация обычно сохраняется в локальном для потока SecurityContext, управляемом SecurityContextHolder с помощью используемого механизма аутентификации. Явная аутентификация может быть достигнута без использования одного из механизмов аутентификации Spring Security, путем создания экземпляра аутентификации и использования кода:
SecurityContextHolder.getContext().setAuthentication(anAuthentication);
Подробнее см. https://docs.spring.io/spring-security/site/docs/4.2.15.RELEASE/apidocs/org/springframework/security/core/Authentication.html
Объяснение:
Объект аутентификации будет установлен в локальный контекст безопасности только в том случае, если пользователь аутентифицирован с действительными учетными данными. И действует как жетон. Где, как в случае с UserDetails, мы не можем узнать, аутентифицирован ли пользователь.
Вы также можете рассматривать его как принцип единой ответственности, где ответственность класса UserDetails заключается в управлении данными пользователя, ответственность за аутентификацию для обработки подлинности.