Class FilterValve
java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.util.LifecycleMBeanBase
org.apache.catalina.valves.ValveBase
org.apache.catalina.valves.FilterValve
- All Implemented Interfaces:
FilterConfig,MBeanRegistration,Contained,JmxEnabled,Lifecycle,Valve
A Valve to wrap a Filter, allowing a user to run Servlet Filters as a part of the Valve chain.
There are some caveats you must be aware of when using this Valve to wrap a Filter:
- You get a separate instance of your Filter class distinct from any that may be instantiated within your application.
- Calls to
FilterConfig.getFilterName()will returnnull. - Calling
FilterConfig.getServletContext()will return the proper ServletContext for a Valve/Filter attached to a<Context>, but will return a ServletContext which is nearly useless for any Valve/Filter specified on an<Engine>or>Host<. - Your Filter MUST NOT wrap the
ServletRequestorServletResponseobjects, or an exception will be thrown.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse -
Field Summary
Fields inherited from class org.apache.catalina.valves.ValveBase
asyncSupported, container, containerLog, next, smFields inherited from interface org.apache.catalina.Lifecycle
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddInitParam(String paramName, String paramValue) Adds an initialization parameter for the Filter.Gets the name of the class for the Filter.Get the name of the filter.getInitParameter(String name) Returns aStringcontaining the value of the named initialization parameter, ornullif the parameter does not exist.Returns the names of the filter's initialization parameters as anEnumerationofStringobjects, or an emptyEnumerationif the filter has no initialization parameters.Returns a reference to theServletContextin which the caller is executing.voidPerform request processing as required by this Valve.voidsetFilterClass(String filterClassName) Sets the name of the class for the Filter.voidsetFilterClassName(String filterClassName) Sets the name of the class for the Filter.protected voidStart this component and implement the requirements ofLifecycleBase.startInternal().protected voidStop this component and implement the requirements ofLifecycleBase.stopInternal().Methods inherited from class org.apache.catalina.valves.ValveBase
backgroundProcess, getContainer, getDomainInternal, getNext, getObjectNameKeyProperties, initInternal, isAsyncSupported, setAsyncSupported, setContainer, setNext, toStringMethods inherited from class org.apache.catalina.util.LifecycleMBeanBase
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregisterMethods inherited from class org.apache.catalina.util.LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
-
Constructor Details
-
FilterValve
public FilterValve()
-
-
Method Details
-
setFilterClass
Sets the name of the class for the Filter.- Parameters:
filterClassName- The class name for the Filter.
-
setFilterClassName
Sets the name of the class for the Filter.- Parameters:
filterClassName- The class name for the Filter.
-
getFilterClassName
Gets the name of the class for the Filter.- Returns:
- The class name for the Filter.
-
addInitParam
-
getFilterName
Description copied from interface:jakarta.servlet.FilterConfigGet the name of the filter.- Specified by:
getFilterNamein interfaceFilterConfig- Returns:
null
-
getServletContext
Description copied from interface:jakarta.servlet.FilterConfigReturns a reference to theServletContextin which the caller is executing.- Specified by:
getServletContextin interfaceFilterConfig- Returns:
- the ServletContext. Note that this will be of limited use if the Valve/Filter is not attached to a
<Context>. - See Also:
-
getInitParameter
Description copied from interface:jakarta.servlet.FilterConfigReturns aStringcontaining the value of the named initialization parameter, ornullif the parameter does not exist.- Specified by:
getInitParameterin interfaceFilterConfig- Parameters:
name-Stringspecifying the name of the initialization parameter- Returns:
Stringcontaining the value of the initialization parameter
-
getInitParameterNames
Description copied from interface:jakarta.servlet.FilterConfigReturns the names of the filter's initialization parameters as anEnumerationofStringobjects, or an emptyEnumerationif the filter has no initialization parameters.- Specified by:
getInitParameterNamesin interfaceFilterConfig- Returns:
EnumerationofStringobjects containing the names of the filter's initialization parameters
-
startInternal
Description copied from class:ValveBaseStart this component and implement the requirements ofLifecycleBase.startInternal().- Overrides:
startInternalin classValveBase- Throws:
LifecycleException- if this component detects a fatal error that prevents this component from being used
-
stopInternal
Description copied from class:ValveBaseStop this component and implement the requirements ofLifecycleBase.stopInternal().- Overrides:
stopInternalin classValveBase- Throws:
LifecycleException- if this component detects a fatal error that prevents this component from being used
-
invoke
Description copied from interface:ValvePerform request processing as required by this Valve.
An individual Valve MAY perform the following actions, in the specified order:
- Examine and/or modify the properties of the specified Request and Response.
- Examine the properties of the specified Request, completely generate the corresponding Response, and return control to the caller.
- Examine the properties of the specified Request and Response, wrap either or both of these objects to supplement their functionality, and pass them on.
- If the corresponding Response was not generated (and control was not returned, call the next Valve in the
pipeline (if there is one) by executing
getNext().invoke(). - Examine, but not modify, the properties of the resulting Response (which was created by a subsequently invoked Valve or Container).
A Valve MUST NOT do any of the following things:
- Change request properties that have already been used to direct the flow of processing control for this request (for instance, trying to change the virtual host to which a Request should be sent from a pipeline attached to a Host or Context in the standard implementation).
- Create a completed Response AND pass this Request and Response on to the next Valve in the pipeline.
- Consume bytes from the input stream associated with the Request, unless it is completely generating the response, or wrapping the request before passing it on.
- Modify the HTTP headers included with the Response after the
getNext().invoke()method has returned. - Perform any actions on the output stream associated with the specified Response after the
getNext().invoke()method has returned.
- Specified by:
invokein interfaceValve- Parameters:
request- The servlet request to be processedresponse- The servlet response to be created- Throws:
IOException- if an input/output error occurs, or is thrown by a subsequently invoked Valve, Filter, or ServletServletException- if a servlet error occurs, or is thrown by a subsequently invoked Valve, Filter, or Servlet
-