Interface PrincipalMap

All Superinterfaces:
Iterable, Map<String,Object>, PrincipalCollection, Serializable
All Known Implementing Classes:
SimplePrincipalMap

public interface PrincipalMap extends PrincipalCollection, Map<String,Object>
EXPERIMENTAL - DO NOT USE YET

A PrincipalMap is map of all of a subject's principals - its identifying attributes like username, userId, etc.

The Map methods allow you to interact with a unified representation of all of the Subject's principals, even if they came from different realms. You can think of the Map methods as the general purpose API for a Subject's principals. That is, you can access a principal generally:

 Object principal = subject.getPrincipals().get(principalName);
 
For example, to get the Subject's username (if the username principal indeed exists and was populated by a Realm), you can do the following:
 String username = (String)subject.getPrincipals().get("username");
 

Multi-Realm Environments

If your application uses multiple realms, the Map methods reflect the the aggregate principals from all realms that authenticated the owning Subject.

But in these multi-realm environments, it is often convenient or necessary to acquire only the principals contributed by a specific realm (often in a realm implementation itself). This PrincipalMap interface satisfies those needs by providing additional realm-specific accessor/mutator methods.

Since:
1.2