org.apache.shiro.env
Class DefaultEnvironment

java.lang.Object
  extended by org.apache.shiro.env.DefaultEnvironment
All Implemented Interfaces:
Environment, NamedObjectEnvironment, Destroyable

public class DefaultEnvironment
extends Object
implements NamedObjectEnvironment, Destroyable

Simple/default Environment implementation that stores Shiro objects as key-value pairs in a Map instance. The key is the object name, the value is the object itself.

Since:
1.2

Field Summary
static String DEFAULT_SECURITY_MANAGER_KEY
          The default name under which the application's SecurityManager instance may be acquired, equal to securityManager.
protected  Map<String,Object> objects
           
 
Constructor Summary
DefaultEnvironment()
          Creates a new instance with a thread-safe ConcurrentHashMap backing map.
DefaultEnvironment(Map<String,?> seed)
          Creates a new instance with the specified backing map.
 
Method Summary
 void destroy()
          Called when this object is being destroyed, allowing any necessary cleanup of internal resources.
<T> T
getObject(String name, Class<T> requiredType)
          Returns the object in Shiro's environment with the specified name and type or null if no object with that name was found.
 Map<String,Object> getObjects()
          Returns the live (modifiable) internal objects collection.
 SecurityManager getSecurityManager()
          Returns the application's SecurityManager instance accessible in the backing map using the securityManagerName property as the lookup key.
 String getSecurityManagerName()
          Returns the name of the SecurityManager instance in the backing map.
protected  SecurityManager lookupSecurityManager()
          Looks up the SecurityManager instance in the backing map without performing any non-null guarantees.
 void setObject(String name, Object instance)
           
 void setSecurityManager(SecurityManager securityManager)
           
 void setSecurityManagerName(String securityManagerName)
          Sets the name of the SecurityManager instance in the backing map.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_SECURITY_MANAGER_KEY

public static final String DEFAULT_SECURITY_MANAGER_KEY
The default name under which the application's SecurityManager instance may be acquired, equal to securityManager.

See Also:
Constant Field Values

objects

protected final Map<String,Object> objects
Constructor Detail

DefaultEnvironment

public DefaultEnvironment()
Creates a new instance with a thread-safe ConcurrentHashMap backing map.


DefaultEnvironment

public DefaultEnvironment(Map<String,?> seed)
Creates a new instance with the specified backing map.

Parameters:
seed - backing map to use to maintain Shiro objects.
Method Detail

getSecurityManager

public SecurityManager getSecurityManager()
                                   throws IllegalStateException
Returns the application's SecurityManager instance accessible in the backing map using the securityManagerName property as the lookup key.

This implementation guarantees that a non-null instance is always returned, as this is expected for Environment API end-users. If subclasses have the need to perform the map lookup without this guarantee (for example, during initialization when the instance may not have been added to the map yet), the lookupSecurityManager() method is provided as an alternative.

Specified by:
getSecurityManager in interface Environment
Returns:
the application's SecurityManager instance accessible in the backing map using the securityManagerName property as the lookup key.
Throws:
IllegalStateException

setSecurityManager

public void setSecurityManager(SecurityManager securityManager)

lookupSecurityManager

protected SecurityManager lookupSecurityManager()
Looks up the SecurityManager instance in the backing map without performing any non-null guarantees.

Returns:
the SecurityManager in the backing map, or null if it has not yet been populated.

getSecurityManagerName

public String getSecurityManagerName()
Returns the name of the SecurityManager instance in the backing map. Used as a key to lookup the instance. Unless set otherwise, the default is securityManager.

Returns:
the name of the SecurityManager instance in the backing map. Used as a key to lookup the instance.

setSecurityManagerName

public void setSecurityManagerName(String securityManagerName)
Sets the name of the SecurityManager instance in the backing map. Used as a key to lookup the instance. Unless set otherwise, the default is securityManager.

Parameters:
securityManagerName - the name of the SecurityManager instance in the backing map. Used as a key to lookup the instance. 

getObjects

public Map<String,Object> getObjects()
Returns the live (modifiable) internal objects collection.

Returns:
the live (modifiable) internal objects collection.

getObject

public <T> T getObject(String name,
                       Class<T> requiredType)
            throws RequiredTypeException
Description copied from interface: NamedObjectEnvironment
Returns the object in Shiro's environment with the specified name and type or null if no object with that name was found.

Specified by:
getObject in interface NamedObjectEnvironment
Type Parameters:
T - the type of the class
Parameters:
name - the assigned name of the object.
requiredType - the class to which the discovered object must be assignable.
Returns:
the object in Shiro's environment with the specified name (of the specified type) or null if no object with that name was found.
Throws:
RequiredTypeException - if the discovered object does not equal, extend, or implement the specified class.

setObject

public void setObject(String name,
                      Object instance)

destroy

public void destroy()
             throws Exception
Description copied from interface: Destroyable
Called when this object is being destroyed, allowing any necessary cleanup of internal resources.

Specified by:
destroy in interface Destroyable
Throws:
Exception - if an exception occurs during object destruction.


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