Uses of Interface
org.apache.shiro.subject.PrincipalCollection
Packages that use PrincipalCollection
Package
Description
Core interfaces and exceptions concerning Authentication (the act of logging-in).
Support for PAM, or Pluggable Authentication Modules, which is
the capability to authenticate a user against multiple configurable (pluggable) modules (Shiro
calls these
Realms).Core interfaces and exceptions supporting Authorization (access control).
Provides the master
SecurityManager interface and a default implementation
hierarchy for managing all aspects of Shiro's functionality in an application.Components and sub-packages used in supporting the core
Realm interface.Realms that acquire security data from a Microsoft Active Directory.
Realms that acquire security data from an RDBMS (Relational Database Management System) using the
JDBC API.
Realms that acquire security data from an LDAP (Lightweight Directory Access Protocol) server
utilizing LDAP/Naming APIs.
Components supporting the
Subject interface, the most important concept in
Shiro's API.Concrete support implementations of most of the
org.apache.shiro.subject interfaces.Your run-of-the-mill 'util' package for components and logic widely used across the framework that can't
find their home into a proper OO hierarchy (or, most likely for things used across many hierarchies).
-
Uses of PrincipalCollection in org.apache.shiro.authc
Fields in org.apache.shiro.authc declared as PrincipalCollectionModifier and TypeFieldDescriptionprotected PrincipalCollectionSimpleAuthenticationInfo.principalsThe principals identifying the account associated with this AuthenticationInfo instance.Methods in org.apache.shiro.authc that return PrincipalCollectionModifier and TypeMethodDescriptionAuthenticationInfo.getPrincipals()Returns all principals associated with the corresponding Subject.SimpleAccount.getPrincipals()Returns the principals, aka the identifying attributes (username, user id, first name, last name, etc.) of this Account.SimpleAuthenticationInfo.getPrincipals()Methods in org.apache.shiro.authc with parameters of type PrincipalCollectionModifier and TypeMethodDescriptionprotected voidAbstractAuthenticator.notifyLogout(PrincipalCollection principals) Notifies any registeredAuthenticationListeners that aSubjecthas logged-out.voidAbstractAuthenticator.onLogout(PrincipalCollection principals) This implementation merely callsnotifyLogoutto allow any registered listeners to react to the logout.voidAuthenticationListener.onLogout(PrincipalCollection principals) Callback triggered when aSubjectlogs-out of the system.voidLogoutAware.onLogout(PrincipalCollection principals) Callback triggered when aSubjectlogs out of the system.voidSimpleAccount.setPrincipals(PrincipalCollection principals) Sets the principals, aka the identifying attributes (username, user id, first name, last name, etc.) of this Account.voidSimpleAuthenticationInfo.setPrincipals(PrincipalCollection principals) Sets the identifying principal(s) represented by this instance.Constructors in org.apache.shiro.authc with parameters of type PrincipalCollectionModifierConstructorDescriptionSimpleAccount(PrincipalCollection principals, Object credentials) Constructs a SimpleAccount instance for the specified principals and credentials.SimpleAccount(PrincipalCollection principals, Object credentials, Set<String> roles) Constructs a SimpleAccount instance for the specified principals and credentials, with the assigned roles.SimpleAccount(PrincipalCollection principals, Object credentials, Set<String> roleNames, Set<Permission> permissions) Constructs a SimpleAccount instance from the given principals and credentials, with the the assigned roles and permissions.SimpleAccount(PrincipalCollection principals, Object hashedCredentials, org.apache.shiro.lang.util.ByteSource credentialsSalt) Constructs a SimpleAccount instance for the specified principals and credentials.SimpleAuthenticationInfo(PrincipalCollection principals, Object credentials) Constructor that takes in an account's identifying principal(s) and its corresponding credentials that verify the principals.SimpleAuthenticationInfo(PrincipalCollection principals, Object hashedCredentials, org.apache.shiro.lang.util.ByteSource credentialsSalt) Constructor that takes in an account's identifying principal(s), hashed credentials used to verify the principals, and the salt used when hashing the credentials. -
Uses of PrincipalCollection in org.apache.shiro.authc.pam
Methods in org.apache.shiro.authc.pam with parameters of type PrincipalCollectionModifier and TypeMethodDescriptionvoidModularRealmAuthenticator.onLogout(PrincipalCollection principals) First callssuper.onLogout(principals)to ensure a logout notification is issued, and for each wrappedRealmthat implements theLogoutAwareinterface, calls((LogoutAware)realm).onLogout(principals)to allow each realm the opportunity to perform logout/cleanup operations during an user-logout. -
Uses of PrincipalCollection in org.apache.shiro.authz
Methods in org.apache.shiro.authz with parameters of type PrincipalCollectionModifier and TypeMethodDescriptionvoidAuthorizer.checkPermission(PrincipalCollection subjectPrincipal, String permission) Ensures the corresponding Subject/user implies the specified permission String.voidAuthorizer.checkPermission(PrincipalCollection subjectPrincipal, Permission permission) Ensures a subject/userPermission.implies(Permission)implies} the specified Permission.voidModularRealmAuthorizer.checkPermission(PrincipalCollection principals, String permission) If !isPermitted(permission), throws anUnauthorizedExceptionotherwise returns quietly.voidModularRealmAuthorizer.checkPermission(PrincipalCollection principals, Permission permission) If !isPermitted(permission), throws anUnauthorizedExceptionotherwise returns quietly.voidAuthorizer.checkPermissions(PrincipalCollection subjectPrincipal, String... permissions) Ensures the corresponding Subject/userimpliesall of the specified permission strings.voidAuthorizer.checkPermissions(PrincipalCollection subjectPrincipal, Collection<Permission> permissions) Ensures the corresponding Subject/userimpliesall of the specified permission strings.voidModularRealmAuthorizer.checkPermissions(PrincipalCollection principals, String... permissions) If !isPermitted(permission), throws anUnauthorizedExceptionotherwise returns quietly.voidModularRealmAuthorizer.checkPermissions(PrincipalCollection principals, Collection<Permission> permissions) If !isPermitted(permission)for all the given Permissions, throws anUnauthorizedExceptionotherwise returns quietly.voidAuthorizer.checkRole(PrincipalCollection subjectPrincipal, String roleIdentifier) Asserts the corresponding Subject/user has the specified role by returning quietly if they do or throwing anAuthorizationExceptionif they do not.voidModularRealmAuthorizer.checkRole(PrincipalCollection principals, String role) If !hasRole(role), throws anUnauthorizedExceptionotherwise returns quietly.voidAuthorizer.checkRoles(PrincipalCollection subjectPrincipal, String... roleIdentifiers) Same ascheckRoles(PrincipalCollection subjectPrincipal, Collection<String> roleIdentifiers)but doesn't require a collection as an argument.voidAuthorizer.checkRoles(PrincipalCollection subjectPrincipal, Collection<String> roleIdentifiers) Asserts the corresponding Subject/user has all of the specified roles by returning quietly if they do or throwing anAuthorizationExceptionif they do not.voidModularRealmAuthorizer.checkRoles(PrincipalCollection principals, String... roles) CallscheckRolefor each role specified.voidModularRealmAuthorizer.checkRoles(PrincipalCollection principals, Collection<String> roles) booleanAuthorizer.hasAllRoles(PrincipalCollection subjectPrincipal, Collection<String> roleIdentifiers) Returns true if the corresponding Subject/user has all of the specified roles, false otherwise.booleanModularRealmAuthorizer.hasAllRoles(PrincipalCollection principals, Collection<String> roleIdentifiers) Returnstrueiff any of the configured realms'ModularRealmAuthorizer.hasRole(org.apache.shiro.subject.PrincipalCollection, String)call returnstruefor all roles specified,falseotherwise.booleanAuthorizer.hasRole(PrincipalCollection subjectPrincipal, String roleIdentifier) Returns true if the corresponding Subject/user has the specified role, false otherwise.booleanModularRealmAuthorizer.hasRole(PrincipalCollection principals, String roleIdentifier) Returnstrueif any of the configured realms'ModularRealmAuthorizer.hasRole(org.apache.shiro.subject.PrincipalCollection, String)call returnstrue,falseotherwise.boolean[]Authorizer.hasRoles(PrincipalCollection subjectPrincipal, List<String> roleIdentifiers) Checks if the corresponding Subject/user has the specified roles, returning a boolean array indicating which roles are associated with the given subject.boolean[]ModularRealmAuthorizer.hasRoles(PrincipalCollection principals, List<String> roleIdentifiers) CallsModularRealmAuthorizer.hasRole(org.apache.shiro.subject.PrincipalCollection, String)for each role name in the specified collection and places the return value from each call at the respective location in the returned array.booleanAuthorizer.isPermitted(PrincipalCollection principals, String permission) Returns true if the corresponding subject/user is permitted to perform an action or access a resource summarized by the specified permission string.boolean[]Authorizer.isPermitted(PrincipalCollection subjectPrincipal, String... permissions) Checks if the corresponding Subject implies the given permission strings and returns a boolean array indicating which permissions are implied.boolean[]Authorizer.isPermitted(PrincipalCollection subjectPrincipal, List<Permission> permissions) Checks if the corresponding Subject/user implies the given Permissions and returns a boolean array indicating which permissions are implied.booleanAuthorizer.isPermitted(PrincipalCollection subjectPrincipal, Permission permission) Returns true if the corresponding subject/user is permitted to perform an action or access a resource summarized by the specified permission.booleanModularRealmAuthorizer.isPermitted(PrincipalCollection principals, String permission) Returnstrueif any of the configured realms'ModularRealmAuthorizer.isPermitted(org.apache.shiro.subject.PrincipalCollection, String)returnstrue,falseotherwise.boolean[]ModularRealmAuthorizer.isPermitted(PrincipalCollection principals, String... permissions) Returnstrueif any of the configured realms'ModularRealmAuthorizer.isPermittedAll(org.apache.shiro.subject.PrincipalCollection, String...)call returnstrue,falseotherwise.boolean[]ModularRealmAuthorizer.isPermitted(PrincipalCollection principals, List<Permission> permissions) Returnstrueif any of the configured realms'ModularRealmAuthorizer.isPermitted(org.apache.shiro.subject.PrincipalCollection, List)call returnstrue,falseotherwise.booleanModularRealmAuthorizer.isPermitted(PrincipalCollection principals, Permission permission) Returnstrueif any of the configured realms'ModularRealmAuthorizer.isPermitted(org.apache.shiro.subject.PrincipalCollection, Permission)call returnstrue,falseotherwise.booleanAuthorizer.isPermittedAll(PrincipalCollection subjectPrincipal, String... permissions) Returns true if the corresponding Subject/user implies all of the specified permission strings, false otherwise.booleanAuthorizer.isPermittedAll(PrincipalCollection subjectPrincipal, Collection<Permission> permissions) Returns true if the corresponding Subject/user implies all of the specified permissions, false otherwise.booleanModularRealmAuthorizer.isPermittedAll(PrincipalCollection principals, String... permissions) Returnstrueif any of the configured realms'ModularRealmAuthorizer.isPermitted(org.apache.shiro.subject.PrincipalCollection, String)call returnstruefor all of the specified string permissions,falseotherwise.booleanModularRealmAuthorizer.isPermittedAll(PrincipalCollection principals, Collection<Permission> permissions) Returnstrueif any of the configured realms'ModularRealmAuthorizer.isPermitted(org.apache.shiro.subject.PrincipalCollection, Permission)call returnstruefor all of the specified Permissions,falseotherwise. -
Uses of PrincipalCollection in org.apache.shiro.mgt
Methods in org.apache.shiro.mgt that return PrincipalCollectionModifier and TypeMethodDescriptionprotected PrincipalCollectionAbstractRememberMeManager.convertBytesToPrincipals(byte[] bytes, SubjectContext subjectContext) If acipherServiceis available, it will be used to first decrypt the byte array.protected PrincipalCollectionAbstractRememberMeManager.deserialize(byte[] serializedIdentity) Deserializes the given byte array by using theserializer'sdeserializemethod.protected PrincipalCollectionAbstractRememberMeManager.getIdentityToRemember(Subject subject, AuthenticationInfo info) protected PrincipalCollectionDefaultSecurityManager.getRememberedIdentity(SubjectContext subjectContext) AbstractRememberMeManager.getRememberedPrincipals(SubjectContext subjectContext) Implements the interface method by firstacquiringthe remembered serialized byte array.RememberMeManager.getRememberedPrincipals(SubjectContext subjectContext) Based on the specified subject context map being used to build a Subject instance, returns any previously remembered principals for the subject for automatic identity association (aka 'Remember Me').protected PrincipalCollectionAbstractRememberMeManager.onRememberedPrincipalFailure(RuntimeException e, SubjectContext context) Called when an exception is thrown while trying to retrieve principals.Methods in org.apache.shiro.mgt that return types with arguments of type PrincipalCollectionModifier and TypeMethodDescriptionorg.apache.shiro.lang.io.Serializer<PrincipalCollection> AbstractRememberMeManager.getSerializer()Returns theSerializerused to serialize and deserializePrincipalCollectioninstances for persistent remember me storage.Methods in org.apache.shiro.mgt with parameters of type PrincipalCollectionModifier and TypeMethodDescriptionvoidAuthorizingSecurityManager.checkPermission(PrincipalCollection principals, String permission) voidAuthorizingSecurityManager.checkPermission(PrincipalCollection principals, Permission permission) voidAuthorizingSecurityManager.checkPermissions(PrincipalCollection principals, String... permissions) voidAuthorizingSecurityManager.checkPermissions(PrincipalCollection principals, Collection<Permission> permissions) voidAuthorizingSecurityManager.checkRole(PrincipalCollection principals, String role) voidAuthorizingSecurityManager.checkRoles(PrincipalCollection principals, String... roles) voidAuthorizingSecurityManager.checkRoles(PrincipalCollection principals, Collection<String> roles) protected byte[]AbstractRememberMeManager.convertPrincipalsToBytes(PrincipalCollection principals) Converts the given principal collection the byte array that will be persisted to be 'remembered' later.booleanAuthorizingSecurityManager.hasAllRoles(PrincipalCollection principals, Collection<String> roleIdentifiers) booleanAuthorizingSecurityManager.hasRole(PrincipalCollection principals, String roleIdentifier) boolean[]AuthorizingSecurityManager.hasRoles(PrincipalCollection principals, List<String> roleIdentifiers) booleanAuthorizingSecurityManager.isPermitted(PrincipalCollection principals, String permissionString) boolean[]AuthorizingSecurityManager.isPermitted(PrincipalCollection principals, String... permissions) boolean[]AuthorizingSecurityManager.isPermitted(PrincipalCollection principals, List<Permission> permissions) booleanAuthorizingSecurityManager.isPermitted(PrincipalCollection principals, Permission permission) booleanAuthorizingSecurityManager.isPermittedAll(PrincipalCollection principals, String... permissions) booleanAuthorizingSecurityManager.isPermittedAll(PrincipalCollection principals, Collection<Permission> permissions) protected SubjectDefaultSubjectFactory.newSubjectInstance(PrincipalCollection principals, boolean authenticated, String host, Session session, SecurityManager securityManager) Deprecated.protected voidAbstractRememberMeManager.rememberIdentity(Subject subject, PrincipalCollection accountPrincipals) Remembers the specified account principals by firstconvertingthem to a byte array and thenremembersthat byte array.protected byte[]AbstractRememberMeManager.serialize(PrincipalCollection principals) Serializes the givenprincipalsby serializing them to a byte array by using theserializer'sserializemethod.Method parameters in org.apache.shiro.mgt with type arguments of type PrincipalCollectionModifier and TypeMethodDescriptionvoidAbstractRememberMeManager.setSerializer(org.apache.shiro.lang.io.Serializer<PrincipalCollection> serializer) Sets theSerializerused to serialize and deserializePrincipalCollectioninstances for persistent remember me storage. -
Uses of PrincipalCollection in org.apache.shiro.realm
Methods in org.apache.shiro.realm with parameters of type PrincipalCollectionModifier and TypeMethodDescriptionvoidAuthorizingRealm.checkPermission(PrincipalCollection subjectIdentifier, String permission) voidAuthorizingRealm.checkPermission(PrincipalCollection principal, Permission permission) voidAuthorizingRealm.checkPermissions(PrincipalCollection subjectIdentifier, String... permissions) voidAuthorizingRealm.checkPermissions(PrincipalCollection principal, Collection<Permission> permissions) voidAuthorizingRealm.checkRole(PrincipalCollection principal, String role) voidAuthorizingRealm.checkRoles(PrincipalCollection principal, String... roles) voidAuthorizingRealm.checkRoles(PrincipalCollection principal, Collection<String> roles) protected voidCachingRealm.clearCache(PrincipalCollection principals) Clears out any cached data associated with the specified account identity/identities.protected voidAuthenticatingRealm.clearCachedAuthenticationInfo(PrincipalCollection principals) Clears out the AuthenticationInfo cache entry for the specified account.protected voidAuthorizingRealm.clearCachedAuthorizationInfo(PrincipalCollection principals) Clears out the AuthorizationInfo cache entry for the specified account.protected voidAuthenticatingRealm.doClearCache(PrincipalCollection principals) This implementation clears out any cached authentication data by callingAuthenticatingRealm.clearCachedAuthenticationInfo(org.apache.shiro.subject.PrincipalCollection).protected voidAuthorizingRealm.doClearCache(PrincipalCollection principals) Callssuper.doClearCacheto ensure any cached authentication data is removed and then callsAuthorizingRealm.clearCachedAuthorizationInfo(org.apache.shiro.subject.PrincipalCollection)to remove any cached authorization data.protected voidCachingRealm.doClearCache(PrincipalCollection principals) This implementation does nothing - it is a template to be overridden by subclasses if necessary.protected abstract AuthorizationInfoAuthorizingRealm.doGetAuthorizationInfo(PrincipalCollection principals) Retrieves the AuthorizationInfo for the given principals from the underlying data store.protected AuthorizationInfoSimpleAccountRealm.doGetAuthorizationInfo(PrincipalCollection principals) protected ObjectAuthenticatingRealm.getAuthenticationCacheKey(PrincipalCollection principals) Returns the key under whichAuthenticationInfoinstances are cached if authentication caching is enabled.protected ObjectAuthorizingRealm.getAuthorizationCacheKey(PrincipalCollection principals) protected AuthorizationInfoAuthorizingRealm.getAuthorizationInfo(PrincipalCollection principals) Returns an account's authorization-specific information for the specifiedprincipals, ornullif no account could be found.protected ObjectCachingRealm.getAvailablePrincipal(PrincipalCollection principals) A utility method for subclasses that returns the first available principal of interest to this particular realm.protected StringSimpleAccountRealm.getUsername(PrincipalCollection principals) booleanAuthorizingRealm.hasAllRoles(PrincipalCollection principal, Collection<String> roleIdentifiers) booleanAuthorizingRealm.hasRole(PrincipalCollection principal, String roleIdentifier) boolean[]AuthorizingRealm.hasRoles(PrincipalCollection principal, List<String> roleIdentifiers) booleanAuthorizingRealm.isPermitted(PrincipalCollection principals, String permission) boolean[]AuthorizingRealm.isPermitted(PrincipalCollection subjectIdentifier, String... permissions) boolean[]AuthorizingRealm.isPermitted(PrincipalCollection principals, List<Permission> permissions) booleanAuthorizingRealm.isPermitted(PrincipalCollection principals, Permission permission) booleanAuthorizingRealm.isPermittedAll(PrincipalCollection subjectIdentifier, String... permissions) booleanAuthorizingRealm.isPermittedAll(PrincipalCollection principal, Collection<Permission> permissions) voidCachingRealm.onLogout(PrincipalCollection principals) If caching is enabled, this will clear any cached data associated with the specified account identity. -
Uses of PrincipalCollection in org.apache.shiro.realm.activedirectory
Methods in org.apache.shiro.realm.activedirectory with parameters of type PrincipalCollectionModifier and TypeMethodDescriptionprotected AuthorizationInfoActiveDirectoryRealm.queryForAuthorizationInfo(PrincipalCollection principals, LdapContextFactory ldapContextFactory) Builds anAuthorizationInfoobject by querying the active directory LDAP context for the groups that a user is a member of. -
Uses of PrincipalCollection in org.apache.shiro.realm.jdbc
Methods in org.apache.shiro.realm.jdbc with parameters of type PrincipalCollectionModifier and TypeMethodDescriptionprotected AuthorizationInfoJdbcRealm.doGetAuthorizationInfo(PrincipalCollection principals) This implementation of the interface expects the principals collection to return a String username keyed off of this realm'sname -
Uses of PrincipalCollection in org.apache.shiro.realm.ldap
Methods in org.apache.shiro.realm.ldap with parameters of type PrincipalCollectionModifier and TypeMethodDescriptionprotected AuthorizationInfoAbstractLdapRealm.doGetAuthorizationInfo(PrincipalCollection principals) protected AuthorizationInfoDefaultLdapRealm.doGetAuthorizationInfo(PrincipalCollection principals) protected abstract AuthorizationInfoAbstractLdapRealm.queryForAuthorizationInfo(PrincipalCollection principal, LdapContextFactory ldapContextFactory) Abstract method that should be implemented by subclasses to builds anAuthorizationInfoobject by querying the LDAP context for the specified principal.protected AuthorizationInfoDefaultLdapRealm.queryForAuthorizationInfo(PrincipalCollection principals, LdapContextFactory ldapContextFactory) Method that should be implemented by subclasses to build anAuthorizationInfoobject by querying the LDAP context for the specified principal. -
Uses of PrincipalCollection in org.apache.shiro.subject
Subinterfaces of PrincipalCollection in org.apache.shiro.subjectModifier and TypeInterfaceDescriptioninterfaceAPrincipalCollectionthat allows modification.interfaceEXPERIMENTAL - DO NOT USE YETClasses in org.apache.shiro.subject that implement PrincipalCollectionModifier and TypeClassDescriptionclassA simple implementation of theMutablePrincipalCollectioninterface that tracks principals internally by storing them in aLinkedHashMap.classDefault implementation of thePrincipalMapinterface.Methods in org.apache.shiro.subject that return PrincipalCollectionModifier and TypeMethodDescriptionSubject.getPreviousPrincipals()Returns the previous 'pre run as' identity of thisSubjectbefore assuming the currentrunAsidentity, ornullif thisSubjectis not operating under an assumed identity (normal state).Subject.getPrincipals()Returns this Subject's principals (identifying attributes) in the form of aPrincipalCollectionornullif this Subject is anonymous because it doesn't yet have any associated account data (for example, if they haven't logged in).SubjectContext.getPrincipals()Returns the principals (aka identity) that the constructedSubjectshould reflect.Subject.releaseRunAs()Releases the current 'run as' (assumed) identity and reverts back to the previous 'pre run as' identity that existed before#runAs runAswas called.SubjectContext.resolvePrincipals()Methods in org.apache.shiro.subject with parameters of type PrincipalCollectionModifier and TypeMethodDescriptionvoidMutablePrincipalCollection.addAll(PrincipalCollection principals) Adds all of the principals from the given principal collection to this collection.voidSimplePrincipalCollection.addAll(PrincipalCollection principals) Subject.Builder.principals(PrincipalCollection principals) Ensures theSubjectbeing built will reflect the specified principals (aka identity).voidSubject.runAs(PrincipalCollection principals) Allows this subject to 'run as' or 'assume' another identity indefinitely.voidSubjectContext.setPrincipals(PrincipalCollection principals) Sets the principals (aka identity) that the constructedSubjectshould reflect.Constructors in org.apache.shiro.subject with parameters of type PrincipalCollection -
Uses of PrincipalCollection in org.apache.shiro.subject.support
Fields in org.apache.shiro.subject.support declared as PrincipalCollectionMethods in org.apache.shiro.subject.support that return PrincipalCollectionModifier and TypeMethodDescriptionDelegatingSubject.getPreviousPrincipals()DefaultSubjectContext.getPrincipals()DelegatingSubject.getPrincipals()DelegatingSubject.releaseRunAs()DefaultSubjectContext.resolvePrincipals()Methods in org.apache.shiro.subject.support with parameters of type PrincipalCollectionModifier and TypeMethodDescriptionvoidDelegatingSubject.runAs(PrincipalCollection principals) voidDefaultSubjectContext.setPrincipals(PrincipalCollection principals) Constructors in org.apache.shiro.subject.support with parameters of type PrincipalCollectionModifierConstructorDescriptionDelegatingSubject(PrincipalCollection principals, boolean authenticated, String host, Session session, boolean sessionCreationEnabled, SecurityManager securityManager) DelegatingSubject(PrincipalCollection principals, boolean authenticated, String host, Session session, SecurityManager securityManager) -
Uses of PrincipalCollection in org.apache.shiro.util
Methods in org.apache.shiro.util with parameters of type PrincipalCollectionModifier and TypeMethodDescriptionstatic booleanCollectionUtils.isEmpty(PrincipalCollection principals) Deprecated.Use PrincipalCollection.isEmpty() directly.
DefaultSubjectFactory.createSubject(org.apache.shiro.subject.SubjectContext)directly if you need to instantiate a customSubjectclass.