Representation of an authenticated
Principal once an
Authentication request has been successfully authenticated by the
AuthenticationManager.authenticate(Authentication) method.
Implementors typically provide their own representation of a
Principal,
which usually contains information describing the
Principal entity, such
as, first/middle/last name, address, email, phone, id, etc.
This interface allows implementors to expose specific attributes of their custom
representation of
Principal in a generic way.