|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.shiro.web.env.EnvironmentLoader
public class EnvironmentLoader
An EnvironmentLoader is responsible for loading a web application's Shiro WebEnvironment
(which includes the web app's WebSecurityManager) into the
ServletContext at application startup.
WebSecurityManager and
any additional objects (security filters, etc). However, any component not filtered by the Shiro Filter (such
as other context listeners) was not able to easily acquire the these objects to perform security operations.
Due to this, in Shiro 1.2 and later, this EnvironmentLoader (or more likely, the
EnvironmentLoaderListener subclass) is the preferred mechanism to initialize
a Shiro environment. The Shiro Filter, while still required for request filtering, will not perform this
initialization at startup if the EnvironmentLoader (or listener) runs first.
context-params in web.xml:
shiroEnvironmentClass and shiroConfigLocations that customize how the WebEnvironment instance
will be initialized.
shiroEnvironmentClass context-param, if it exists, allows you to specify the
fully-qualified implementation class name of the WebEnvironment to instantiate. For example:
<context-param>
<param-name>shiroEnvironmentClass</param-name>
<param-value>com.foo.bar.shiro.MyWebEnvironment</param-value>
</context-param>
If not specified, the default value is the IniWebEnvironment class, which assumes Shiro's default
INI configuration format
shiroConfigLocations context-param, if it exists, allows you to specify the config location(s)
(resource path(s)) that will be relayed to the instantiated WebEnvironment. For example:
<context-param>
<param-name>shiroConfigLocations</param-name>
<param-value>/WEB-INF/someLocation/shiro.ini</param-value>
</context-param>
The WebEnvironment implementation must implement the ResourceConfigurable interface if it is to
acquire the shiroConfigLocations value.
If this context-param is not specified, the WebEnvironment instance determines default resource
lookup behavior. For example, the IniWebEnvironment will check the following two locations for INI config
by default (in order):
ShiroFilter in web.xml.
Finally, it should be noted that this implementation was based on ideas in Spring 3's
org.springframework.web.context.ContextLoader implementation - no need to reinvent the wheel for this common
behavior.
EnvironmentLoaderListener,
ShiroFilter| Field Summary | |
|---|---|
static String |
CONFIG_LOCATIONS_PARAM
Servlet Context config param for the resource path to use for configuring the WebEnvironment instance:
shiroConfigLocations |
static String |
ENVIRONMENT_ATTRIBUTE_KEY
|
static String |
ENVIRONMENT_CLASS_PARAM
Servlet Context config param for specifying the WebEnvironment implementation class to use:
shiroEnvironmentClass |
| Constructor Summary | |
|---|---|
EnvironmentLoader()
|
|
| Method Summary | |
|---|---|
protected WebEnvironment |
createEnvironment(javax.servlet.ServletContext sc)
Instantiates a WebEnvironment based on the specified ServletContext. |
protected void |
customizeEnvironment(WebEnvironment environment)
|
void |
destroyEnvironment(javax.servlet.ServletContext servletContext)
Destroys the WebEnvironment for the given servlet context. |
protected Class<?> |
determineWebEnvironmentClass(javax.servlet.ServletContext servletContext)
Return the WebEnvironment implementation class to use, either the default IniWebEnvironment or a custom class if specified. |
WebEnvironment |
initEnvironment(javax.servlet.ServletContext servletContext)
Initializes Shiro's WebEnvironment instance for the specified ServletContext based on the
CONFIG_LOCATIONS_PARAM value. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String ENVIRONMENT_CLASS_PARAM
WebEnvironment implementation class to use:
shiroEnvironmentClass
public static final String CONFIG_LOCATIONS_PARAM
WebEnvironment instance:
shiroConfigLocations
public static final String ENVIRONMENT_ATTRIBUTE_KEY
| Constructor Detail |
|---|
public EnvironmentLoader()
| Method Detail |
|---|
public WebEnvironment initEnvironment(javax.servlet.ServletContext servletContext)
throws IllegalStateException
WebEnvironment instance for the specified ServletContext based on the
CONFIG_LOCATIONS_PARAM value.
servletContext - current servlet context
WebEnvironment instance.
IllegalStateException - if an existing WebEnvironment has already been initialized and associated with
the specified ServletContext.protected Class<?> determineWebEnvironmentClass(javax.servlet.ServletContext servletContext)
IniWebEnvironment or a custom class if specified.
servletContext - current servlet context
ENVIRONMENT_CLASS_PARAM,
IniWebEnvironmentprotected WebEnvironment createEnvironment(javax.servlet.ServletContext sc)
WebEnvironment based on the specified ServletContext.
This implementation determines a
WebEnvironment implementation class to use. That class is instantiated, configured, and returned.
This allows custom WebEnvironment implementations to be specified via a ServletContext init-param if
desired. If not specified, the default IniWebEnvironment implementation will be used.
sc - current servlet context
MutableWebEnvironment,
ResourceConfigurableprotected void customizeEnvironment(WebEnvironment environment)
public void destroyEnvironment(javax.servlet.ServletContext servletContext)
WebEnvironment for the given servlet context.
servletContext - the ServletContext attributed to the WebSecurityManager
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||