Package org.apache.shiro.subject
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 APrincipalMap
is map of all of a subject's principals - its identifying attributes like username, userId, etc. TheMap
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 theMap
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, theMap
methods reflect the the aggregate principals from all realms that authenticated the owningSubject
. 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). ThisPrincipalMap
interface satisfies those needs by providing additional realm-specific accessor/mutator methods.- Since:
- 1.2
- Author:
- Les Hazlewood
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Object
getRealmPrincipal(String realmName, String realmPrincipal)
Map<String,Object>
getRealmPrincipals(String realmName)
Object
removeRealmPrincipal(String realmName, String principalName)
Object
setRealmPrincipal(String realmName, String principalName, Object principal)
Map<String,Object>
setRealmPrincipals(String realmName, Map<String,Object> principals)
-
Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
-
Methods inherited from interface java.util.Map
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
-
Methods inherited from interface org.apache.shiro.subject.PrincipalCollection
asList, asSet, byType, fromRealm, getPrimaryPrincipal, getRealmNames, isEmpty, oneByType
-
-