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

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
Author:
Les Hazlewood

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Method Summary
 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 org.apache.shiro.subject.PrincipalCollection
asList, asSet, byType, fromRealm, getPrimaryPrincipal, getRealmNames, isEmpty, oneByType
 
Methods inherited from interface java.lang.Iterable
iterator
 
Methods inherited from interface java.util.Map
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, values
 

Method Detail

getRealmPrincipals

Map<String,Object> getRealmPrincipals(String realmName)

setRealmPrincipals

Map<String,Object> setRealmPrincipals(String realmName,
                                      Map<String,Object> principals)

setRealmPrincipal

Object setRealmPrincipal(String realmName,
                         String principalName,
                         Object principal)

getRealmPrincipal

Object getRealmPrincipal(String realmName,
                         String realmPrincipal)

removeRealmPrincipal

Object removeRealmPrincipal(String realmName,
                            String principalName)


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.