public class SimplePrincipalMap extends Objectimplements PrincipalMap
PrincipalMap interface. *EXPERIMENTAL for Shiro 1.2 - DO NOT USE YET*
| Constructor and Description |
|---|
SimplePrincipalMap()
|
SimplePrincipalMap(Map
|
| Modifier and Type | Method and Description |
|---|---|
List |
asList()
Returns a single Subject's principals retrieved from all configured Realms as a List, or an empty List if there are not any principals.
|
Set |
asSet()
Returns a single Subject's principals retrieved from all configured Realms as a Set, or an empty Set if there are not any principals.
|
<T> Collection |
byType(Class
Returns all principals assignable from the specified type, or an empty Collection if no principals of that type are contained.
|
void |
clear()
|
boolean |
containsKey(Object
|
boolean |
containsValue(Object
|
protected Map |
ensureCombinedPrincipals()
|
Set |
entrySet()
|
Collection |
fromRealm(String
Returns a single Subject's principals retrieved from the specified Realm
only as a Collection, or an empty Collection if there are not any principals from that realm.
|
Object |
get(Object
|
Object |
getPrimaryPrincipal()
Returns the primary principal used application-wide to uniquely identify the owning account/Subject.
|
Set |
getRealmNames()
Returns the realm names that this collection has principals for.
|
Object |
getRealmPrincipal(String
|
Map |
getRealmPrincipals(String
|
boolean |
isEmpty()
Returns
true if this collection is empty,
false otherwise.
|
Iterator |
iterator()
|
Set |
keySet()
|
<T> T |
oneByType(Class
Returns the first discovered principal assignable from the specified type, or
null if there are none of the specified type.
|
Object |
put(String
|
void |
putAll(Map
|
Object |
remove(Object
|
Object |
removeRealmPrincipal(String
|
Object |
setRealmPrincipal(String
|
Map |
setRealmPrincipals(String
|
int |
size()
|
Collection |
values()
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitforEach, spliteratorcompute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAllpublic int size()
public boolean containsKey(Objecto)
public boolean containsValue(Objecto)
public Collection<Object > values()
public void clear()
public ObjectgetPrimaryPrincipal()
PrincipalCollection
UUIDlong value such as a surrogate primary key in a relational databaseRealm application, typically there is only ever one unique principal to retain and that is the value returned from this method. However, in a multi-
Realm application, where the
PrincipalCollection might retain principals across more than one realm, the value returned from this method should be the single principal that uniquely identifies the subject for the entire application.
That value is of course application specific, but most applications will typically choose one of the primary principals from one of the
Realms.
Shiro's default implementations of this interface make this assumption by usually simply returning
Iterable.iterator() .
next(), which just returns the first returned principal obtained from the first consulted/configured
Realm during the authentication attempt. This means in a multi-
Realm application,
Realm configuraiton order matters if you want to retain this default heuristic.
If this heuristic is not sufficient, most Shiro end-users will need to implement a custom
AuthenticationStrategy. An
AuthenticationStrategy has exact control over the
PrincipalCollection returned at the end of an authentication attempt via the
AuthenticationStrategy#afterAllAttempts implementation.
getPrimaryPrincipal in interface
PrincipalCollection
public <T> T oneByType(Class<T> type)
PrincipalCollection
null if there are none of the specified type.
Note that this will return
null if the 'owning' subject has not yet logged in.
oneByType in interface
PrincipalCollection
type - the type of the principal that should be returned.
null if there isn't one of the specified type.
public <T> Collection<T> byType(Class <T> type)
PrincipalCollection
byType in interface
PrincipalCollection
type - the type of the principals that should be returned.
public ListasList()
PrincipalCollection
asList in interface
PrincipalCollection
public SetasSet()
PrincipalCollection
asSet in interface
PrincipalCollection
public CollectionfromRealm(String realmName)
PrincipalCollection
fromRealm in interface
PrincipalCollection
realmName - the name of the Realm from which the principals were retrieved.
public Set<String > getRealmNames()
PrincipalCollection
getRealmNames in interface
PrincipalCollection
public boolean isEmpty()
PrincipalCollection
true if this collection is empty,
false otherwise.
public Iteratoriterator()
public Map<String ,Object > setRealmPrincipals(String realmName, Map <String ,Object > principals)
public ObjectsetRealmPrincipal(String realmName, String principalName, Object principal)