A collection of all principals associated with a corresponding {@link Subject Subject}. A
principal is just a security term for an identifying attribute, such as a username or user id or social security number or anything else that can be considered an 'identifying' attribute for a {@code Subject}.
A PrincipalCollection organizes its internal principals based on the {@code Realm} where they came from when theSubject was first created. To obtain the principal(s) for a specific Realm, see the {@link #fromRealm} method. Youcan also see which realms contributed to this collection via the {@link #getRealmNames() getRealmNames()} method.
@author Les Hazlewood
@see #getPrimaryPrincipal()
@see #fromRealm(String realmName)
@see #getRealmNames()
@since 0.9