|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.acegisecurity.util.FilterChainProxy
public class FilterChainProxy
Delegates Filter
requests to a list of Spring-managed beans.
The FilterChainProxy
is
loaded via a standard FilterToBeanProxy
declaration in web.xml
.
FilterChainProxy
will then pass init(FilterConfig)
, destroy()
and doFilter(ServletRequest, ServletResponse, FilterChain)
invocations through to each Filter
defined
against FilterChainProxy
.
FilterChainProxy
is configured using a standard FilterInvocationDefinitionSource
. Each possible URI pattern that
FilterChainProxy
should service must be entered. The first matching URI pattern located by
FilterInvocationDefinitionSource
for a given request will be used to define all of the
Filter
s that apply to that request. NB: This means you must put most specific URI patterns at the top
of the list, and ensure all Filter
s that should apply for a given URI pattern are entered against the
respective entry. The FilterChainProxy
will not iterate the remainder of the URI patterns to locate
additional Filter
s. The FilterInvocationDefinitionSource
described the applicable URI
pattern to fire the filter chain, followed by a list of configuration attributes. Each configuration attribute's
ConfigAttribute.getAttribute()
corresponds to a bean name that is available from the
application context.
FilterChainProxy
respects normal handling of Filter
s that elect not to call Filter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse,
javax.servlet.FilterChain)
, in that the remainder of the origial or FilterChainProxy
-declared filter
chain will not be called.
It is particularly noted the Filter
lifecycle mismatch between the servlet container and IoC
container. As per FilterToBeanProxy
JavaDocs, we recommend you allow the IoC
container to manage lifecycle instead of the servlet container. By default the FilterToBeanProxy
will
never call this class' init(FilterConfig)
and destroy()
methods, meaning each of the filters
defined against FilterInvocationDefinitionSource
will not be called. If you do need your filters to be
initialized and destroyed, please set the lifecycle
initialization parameter against the
FilterToBeanProxy
to specify servlet container lifecycle management.
If a filter name of TOKEN_NONE
is used, this allows specification of a filter pattern which should
never cause any filters to fire.
Field Summary | |
---|---|
static java.lang.String |
TOKEN_NONE
|
Constructor Summary | |
---|---|
FilterChainProxy()
|
Method Summary | |
---|---|
void |
afterPropertiesSet()
|
void |
destroy()
|
void |
doFilter(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain chain)
|
FilterInvocationDefinitionSource |
getFilterInvocationDefinitionSource()
|
void |
init(javax.servlet.FilterConfig filterConfig)
|
protected javax.servlet.Filter[] |
obtainAllDefinedFilters()
Obtains all of the unique Filter instances registered against the
FilterInvocationDefinitionSource . |
void |
setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
|
void |
setFilterInvocationDefinitionSource(FilterInvocationDefinitionSource filterInvocationDefinitionSource)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String TOKEN_NONE
Constructor Detail |
---|
public FilterChainProxy()
Method Detail |
---|
public void afterPropertiesSet() throws java.lang.Exception
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
java.lang.Exception
public void destroy()
destroy
in interface javax.servlet.Filter
public void doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain) throws java.io.IOException, javax.servlet.ServletException
doFilter
in interface javax.servlet.Filter
java.io.IOException
javax.servlet.ServletException
public FilterInvocationDefinitionSource getFilterInvocationDefinitionSource()
public void init(javax.servlet.FilterConfig filterConfig) throws javax.servlet.ServletException
init
in interface javax.servlet.Filter
javax.servlet.ServletException
protected javax.servlet.Filter[] obtainAllDefinedFilters()
Filter
instances registered against the
FilterInvocationDefinitionSource
.This is useful in ensuring a Filter
is not
initialized or destroyed twice.
Filter
instances in the application context for which there has been an entry
against the FilterInvocationDefinitionSource
(only one entry is included in the array for
each Filter
that actually exists in application context, even if a given
Filter
is defined multiples times by the FilterInvocationDefinitionSource
)public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
setApplicationContext
in interface org.springframework.context.ApplicationContextAware
org.springframework.beans.BeansException
public void setFilterInvocationDefinitionSource(FilterInvocationDefinitionSource filterInvocationDefinitionSource)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |