java.lang.Object | ||
↳ | org.springframework.web.filter.GenericFilterBean | |
↳ | org.springframework.web.filter.DelegatingFilterProxy |
Proxy for a standard Servlet 2.3 Filter, delegating to a Spring-managed
bean that implements the Filter interface. Supports a "targetBeanName"
filter init-param in web.xml
, specifying the name of the
target bean in the Spring application context.
web.xml
will usually contain a DelegatingFilterProxy definition,
with the specified filter-name
corresponding to a bean name in
Spring's root application context. All calls to the filter proxy will then
be delegated to that bean in the Spring context, which is required to implement
the standard Servlet 2.3 Filter interface.
This approach is particularly useful for Filter implementation with complex setup needs, allowing to apply the full Spring bean definition machinery to Filter instances. Alternatively, consider standard Filter setup in combination with looking up service beans from the Spring root application context.
NOTE: The lifecycle methods defined by the Servlet Filter interface
will by default not be delegated to the target bean, relying on the
Spring application context to manage the lifecycle of that bean. Specifying
the "targetFilterLifecycle" filter init-param as "true" will enforce invocation
of the Filter.init
and Filter.destroy
lifecycle methods
on the target bean, letting the servlet container manage the filter lifecycle.
This class is inspired by Acegi Security's FilterToBeanProxy class, written by Ben Alex.
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.web.filter.GenericFilterBean
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Subclasses may override this to perform custom filter shutdown.
| |||||||||||
Return the name of the ServletContext attribute which should be used to retrieve the
WebApplicationContext from which to load the delegate Filter bean. | |||||||||||
Set the name of the ServletContext attribute which should be used to retrieve the
WebApplicationContext from which to load the delegate Filter bean. | |||||||||||
Set the name of the target bean in the Spring application context.
| |||||||||||
Set whether to invoke the
Filter.init and
Filter.destroy lifecycle methods on the target bean. |
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Destroy the Filter delegate.
| |||||||||||
Return the name of the target bean in the Spring application context.
| |||||||||||
Initialize the Filter delegate, defined as bean the given Spring
application context.
| |||||||||||
Subclasses may override this to perform custom initialization.
| |||||||||||
Actually invoke the delegate Filter with the given request and response.
| |||||||||||
Return whether to invoke the
Filter.init and
Filter.destroy lifecycle methods on the target bean. |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.web.filter.GenericFilterBean
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
javax.servlet.Filter
| |||||||||||
From interface
org.springframework.beans.factory.BeanNameAware
| |||||||||||
From interface
org.springframework.beans.factory.DisposableBean
| |||||||||||
From interface
org.springframework.beans.factory.InitializingBean
| |||||||||||
From interface
org.springframework.context.EnvironmentAware
| |||||||||||
From interface
org.springframework.web.context.ServletContextAware
|
Subclasses may override this to perform custom filter shutdown.
Note: This method will be called from standard filter destruction as well as filter bean destruction in a Spring application context.
This default implementation is empty.
IOException | |
---|---|
ServletException |
Return the name of the ServletContext attribute which should be used to retrieve the
WebApplicationContext
from which to load the delegate Filter bean.
Set the name of the ServletContext attribute which should be used to retrieve the
WebApplicationContext
from which to load the delegate Filter bean.
Set the name of the target bean in the Spring application context. The target bean must implement the standard Servlet 2.3 Filter interface.
By default, the filter-name
as specified for the
DelegatingFilterProxy in web.xml
will be used.
Set whether to invoke the Filter.init
and
Filter.destroy
lifecycle methods on the target bean.
Default is "false"; target beans usually rely on the Spring application context for managing their lifecycle. Setting this flag to "true" means that the servlet container will control the lifecycle of the target Filter, with this proxy delegating the corresponding calls.
Destroy the Filter delegate.
Default implementation simply calls Filter.destroy
on it.
delegate | the Filter delegate (never null ) |
---|
Retrieve a WebApplicationContext
from the ServletContext
attribute with the configured name
. The
WebApplicationContext
must have already been loaded and stored in the
ServletContext
before this filter gets initialized (or invoked).
Subclasses may override this method to provide a different
WebApplicationContext
retrieval strategy.
null
if not foundReturn the name of the target bean in the Spring application context.
Initialize the Filter delegate, defined as bean the given Spring application context.
The default implementation fetches the bean from the application context
and calls the standard Filter.init
method on it, passing
in the FilterConfig of this Filter proxy.
wac | the root application context |
---|
ServletException | if thrown by the Filter |
---|
Subclasses may override this to perform custom initialization. All bean properties of this filter will have been set before this method is invoked.
Note: This method will be called from standard filter initialization as well as filter bean initialization in a Spring application context. Filter name and ServletContext will be available in both cases.
This default implementation is empty.
ServletException |
---|
Actually invoke the delegate Filter with the given request and response.
delegate | the delegate Filter |
---|---|
request | the current HTTP request |
response | the current HTTP response |
filterChain | the current FilterChain |
ServletException | if thrown by the Filter |
---|---|
IOException | if thrown by the Filter |
Return whether to invoke the Filter.init
and
Filter.destroy
lifecycle methods on the target bean.