blob: d4a49f1bb7995629e9a595b8151602501f9b3127 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_65) on Fri Mar 04 17:58:57 EST 2016 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
AbstractShiroFilter (Apache Shiro 1.2.4 API)
</TITLE>
<META NAME="date" CONTENT="2016-03-04">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractShiroFilter (Apache Shiro 1.2.4 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AbstractShiroFilter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html" title="class in org.apache.shiro.web.servlet"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/shiro/web/servlet/AdviceFilter.html" title="class in org.apache.shiro.web.servlet"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/shiro/web/servlet/AbstractShiroFilter.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AbstractShiroFilter.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.apache.shiro.web.servlet.OncePerRequestFilter">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.shiro.web.servlet</FONT>
<BR>
Class AbstractShiroFilter</H2>
<PRE>
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/apache/shiro/web/servlet/ServletContextSupport.html" title="class in org.apache.shiro.web.servlet">org.apache.shiro.web.servlet.ServletContextSupport</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html" title="class in org.apache.shiro.web.servlet">org.apache.shiro.web.servlet.AbstractFilter</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/apache/shiro/web/servlet/NameableFilter.html" title="class in org.apache.shiro.web.servlet">org.apache.shiro.web.servlet.NameableFilter</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html" title="class in org.apache.shiro.web.servlet">org.apache.shiro.web.servlet.OncePerRequestFilter</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.shiro.web.servlet.AbstractShiroFilter</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet">Filter</A>, <A HREF="../../../../../org/apache/shiro/util/Nameable.html" title="interface in org.apache.shiro.util">Nameable</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/apache/shiro/guice/web/GuiceShiroFilter.html" title="class in org.apache.shiro.guice.web">GuiceShiroFilter</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/IniShiroFilter.html" title="class in org.apache.shiro.web.servlet">IniShiroFilter</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/ShiroFilter.html" title="class in org.apache.shiro.web.servlet">ShiroFilter</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.74"><B>AbstractShiroFilter</B></A><DT>extends <A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html" title="class in org.apache.shiro.web.servlet">OncePerRequestFilter</A></DL>
</PRE>
<P>
Abstract base class that provides all standard Shiro request filtering behavior and expects
subclasses to implement configuration-specific logic (INI, XML, .properties, etc).
<p/>
Subclasses should perform configuration and construction logic in an overridden
<A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#init()"><CODE>init()</CODE></A> method implementation. That implementation should make available any constructed
<code>SecurityManager</code> and <code>FilterChainResolver</code> by calling
<A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#setSecurityManager(org.apache.shiro.web.mgt.WebSecurityManager)"><CODE>setSecurityManager(org.apache.shiro.web.mgt.WebSecurityManager)</CODE></A> and
<A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#setFilterChainResolver(org.apache.shiro.web.filter.mgt.FilterChainResolver)"><CODE>setFilterChainResolver(org.apache.shiro.web.filter.mgt.FilterChainResolver)</CODE></A> methods respectively.
<h3>Static SecurityManager</h3>
By default the <code>SecurityManager</code> instance enabled by this filter <em>will not</em> be enabled in static
memory via the <code>SecurityUtils.</code><A HREF="../../../../../org/apache/shiro/SecurityUtils.html#setSecurityManager(org.apache.shiro.mgt.SecurityManager)"><CODE>setSecurityManager</CODE></A>
method. Instead, it is expected that Subject instances will always be constructed on a request-processing thread
via instances of this Filter class.
<p/>
However, if you need to construct <code>Subject</code> instances on separate (non request-processing) threads, it might
be easiest to enable the SecurityManager to be available in static memory via the
<A HREF="../../../../../org/apache/shiro/SecurityUtils.html#getSecurityManager()"><CODE>SecurityUtils.getSecurityManager()</CODE></A> method. You can do this by additionally specifying an <code>init-param</code>:
<pre>
&lt;filter&gt;
... other config here ...
&lt;init-param&gt;
&lt;param-name&gt;staticSecurityManagerEnabled&lt;/param-name&gt;
&lt;param-value&gt;true&lt;/param-value&gt;
&lt;/init-param&gt;
&lt;/filter&gt;
</pre>
See the Shiro <a href="http://shiro.apache.org/subject.html">Subject documentation</a> for more information as to
if you would do this, particularly the sections on the <code>Subject.Builder</code> and Thread Association.
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>1.0</DD>
<DT><B>See Also:</B><DD><a href="http://shiro.apache.org/subject.html">Subject documentation</a></DL>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.shiro.web.servlet.OncePerRequestFilter"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.shiro.web.servlet.<A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html" title="class in org.apache.shiro.web.servlet">OncePerRequestFilter</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html#ALREADY_FILTERED_SUFFIX">ALREADY_FILTERED_SUFFIX</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.shiro.web.servlet.AbstractFilter"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.shiro.web.servlet.<A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html" title="class in org.apache.shiro.web.servlet">AbstractFilter</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html#filterConfig">filterConfig</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected </CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#AbstractShiroFilter()">AbstractShiroFilter</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/shiro/web/mgt/WebSecurityManager.html" title="interface in org.apache.shiro.web.mgt">WebSecurityManager</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#createDefaultSecurityManager()">createDefaultSecurityManager</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/shiro/web/subject/WebSubject.html" title="interface in org.apache.shiro.web.subject">WebSubject</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#createSubject(javax.servlet.ServletRequest, javax.servlet.ServletResponse)">createSubject</A></B>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a <A HREF="../../../../../org/apache/shiro/web/subject/WebSubject.html" title="interface in org.apache.shiro.web.subject"><CODE>WebSubject</CODE></A> instance to associate with the incoming request/response pair which will be used
throughout the request/response execution.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#doFilterInternal(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)">doFilterInternal</A></B>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;servletRequest,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;servletResponse,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A>&nbsp;chain)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>doFilterInternal</code> implementation that sets-up, executes, and cleans-up a Shiro-filtered request.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#executeChain(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)">executeChain</A></B>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A>&nbsp;origChain)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes a <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet"><CODE>FilterChain</CODE></A> for the given request.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getExecutionChain(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)">getExecutionChain</A></B>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A>&nbsp;origChain)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the <code>FilterChain</code> to execute for the given request.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/web/filter/mgt/FilterChainResolver.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainResolver</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getFilterChainResolver()">getFilterChainResolver</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/web/mgt/WebSecurityManager.html" title="interface in org.apache.shiro.web.mgt">WebSecurityManager</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getSecurityManager()">getSecurityManager</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#init()">init</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#isHttpSessions()">isHttpSessions</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#isStaticSecurityManagerEnabled()">isStaticSecurityManagerEnabled</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the constructed <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getSecurityManager()"><CODE>securityManager</CODE></A> reference should be bound
to static memory (via
<code>SecurityUtils.</code><A HREF="../../../../../org/apache/shiro/SecurityUtils.html#setSecurityManager(org.apache.shiro.mgt.SecurityManager)"><CODE>setSecurityManager</CODE></A>),
<code>false</code> otherwise.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#onFilterConfigSet()">onFilterConfigSet</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Template method to be overridden by subclasses to perform initialization logic at start-up.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#prepareServletRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)">prepareServletRequest</A></B>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A>&nbsp;chain)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepares the <code>ServletRequest</code> instance that will be passed to the <code>FilterChain</code> for request
processing.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#prepareServletResponse(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)">prepareServletResponse</A></B>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A>&nbsp;chain)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepares the <code>ServletResponse</code> instance that will be passed to the <code>FilterChain</code> for request
processing.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#setFilterChainResolver(org.apache.shiro.web.filter.mgt.FilterChainResolver)">setFilterChainResolver</A></B>(<A HREF="../../../../../org/apache/shiro/web/filter/mgt/FilterChainResolver.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainResolver</A>&nbsp;filterChainResolver)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#setSecurityManager(org.apache.shiro.web.mgt.WebSecurityManager)">setSecurityManager</A></B>(<A HREF="../../../../../org/apache/shiro/web/mgt/WebSecurityManager.html" title="interface in org.apache.shiro.web.mgt">WebSecurityManager</A>&nbsp;sm)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#setStaticSecurityManagerEnabled(boolean)">setStaticSecurityManagerEnabled</A></B>(boolean&nbsp;staticSecurityManagerEnabled)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets if the constructed <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getSecurityManager()"><CODE>securityManager</CODE></A> reference should be bound
to static memory (via <code>SecurityUtils.</code><A HREF="../../../../../org/apache/shiro/SecurityUtils.html#setSecurityManager(org.apache.shiro.mgt.SecurityManager)"><CODE>setSecurityManager</CODE></A>).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#updateSessionLastAccessTime(javax.servlet.ServletRequest, javax.servlet.ServletResponse)">updateSessionLastAccessTime</A></B>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates any 'native' Session's last access time that might exist to the timestamp when this method is called.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#wrapServletRequest(javax.servlet.http.HttpServletRequest)">wrapServletRequest</A></B>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServletRequest.html?is-external=true" title="class or interface in javax.servlet.http">HttpServletRequest</A>&nbsp;orig)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wraps the original HttpServletRequest in a <A HREF="../../../../../org/apache/shiro/web/servlet/ShiroHttpServletRequest.html" title="class in org.apache.shiro.web.servlet"><CODE>ShiroHttpServletRequest</CODE></A>, which is required for supporting
Servlet Specification behavior backed by a <A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject"><CODE>Subject</CODE></A> instance.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#wrapServletResponse(javax.servlet.http.HttpServletResponse, org.apache.shiro.web.servlet.ShiroHttpServletRequest)">wrapServletResponse</A></B>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServletResponse.html?is-external=true" title="class or interface in javax.servlet.http">HttpServletResponse</A>&nbsp;orig,
<A HREF="../../../../../org/apache/shiro/web/servlet/ShiroHttpServletRequest.html" title="class in org.apache.shiro.web.servlet">ShiroHttpServletRequest</A>&nbsp;request)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new <A HREF="../../../../../org/apache/shiro/web/servlet/ShiroHttpServletResponse.html" title="class in org.apache.shiro.web.servlet"><CODE>ShiroHttpServletResponse</CODE></A> instance, wrapping the <code>orig</code> argument, in order to provide
correct URL rewriting behavior required by the Servlet Specification when using Shiro-based sessions (and not
Servlet Container HTTP-based sessions).</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.shiro.web.servlet.OncePerRequestFilter"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.shiro.web.servlet.<A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html" title="class in org.apache.shiro.web.servlet">OncePerRequestFilter</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)">doFilter</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html#getAlreadyFilteredAttributeName()">getAlreadyFilteredAttributeName</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html#isEnabled()">isEnabled</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html#isEnabled(javax.servlet.ServletRequest, javax.servlet.ServletResponse)">isEnabled</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html#setEnabled(boolean)">setEnabled</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html#shouldNotFilter(javax.servlet.ServletRequest)">shouldNotFilter</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.shiro.web.servlet.NameableFilter"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.shiro.web.servlet.<A HREF="../../../../../org/apache/shiro/web/servlet/NameableFilter.html" title="class in org.apache.shiro.web.servlet">NameableFilter</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/shiro/web/servlet/NameableFilter.html#getName()">getName</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/NameableFilter.html#setName(java.lang.String)">setName</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/NameableFilter.html#toStringBuilder()">toStringBuilder</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.shiro.web.servlet.AbstractFilter"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.shiro.web.servlet.<A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html" title="class in org.apache.shiro.web.servlet">AbstractFilter</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html#destroy()">destroy</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html#getFilterConfig()">getFilterConfig</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html#getInitParam(java.lang.String)">getInitParam</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html#init(javax.servlet.FilterConfig)">init</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html#setFilterConfig(javax.servlet.FilterConfig)">setFilterConfig</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.shiro.web.servlet.ServletContextSupport"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.shiro.web.servlet.<A HREF="../../../../../org/apache/shiro/web/servlet/ServletContextSupport.html" title="class in org.apache.shiro.web.servlet">ServletContextSupport</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/shiro/web/servlet/ServletContextSupport.html#getContextAttribute(java.lang.String)">getContextAttribute</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/ServletContextSupport.html#getContextInitParam(java.lang.String)">getContextInitParam</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/ServletContextSupport.html#getServletContext()">getServletContext</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/ServletContextSupport.html#removeContextAttribute(java.lang.String)">removeContextAttribute</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/ServletContextSupport.html#setContextAttribute(java.lang.String, java.lang.Object)">setContextAttribute</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/ServletContextSupport.html#setServletContext(javax.servlet.ServletContext)">setServletContext</A>, <A HREF="../../../../../org/apache/shiro/web/servlet/ServletContextSupport.html#toString()">toString</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="AbstractShiroFilter()"><!-- --></A><H3>
AbstractShiroFilter</H3>
<PRE>
protected <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.93"><B>AbstractShiroFilter</B></A>()</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="getSecurityManager()"><!-- --></A><H3>
getSecurityManager</H3>
<PRE>
public <A HREF="../../../../../org/apache/shiro/web/mgt/WebSecurityManager.html" title="interface in org.apache.shiro.web.mgt">WebSecurityManager</A> <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.97"><B>getSecurityManager</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setSecurityManager(org.apache.shiro.web.mgt.WebSecurityManager)"><!-- --></A><H3>
setSecurityManager</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.101"><B>setSecurityManager</B></A>(<A HREF="../../../../../org/apache/shiro/web/mgt/WebSecurityManager.html" title="interface in org.apache.shiro.web.mgt">WebSecurityManager</A>&nbsp;sm)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getFilterChainResolver()"><!-- --></A><H3>
getFilterChainResolver</H3>
<PRE>
public <A HREF="../../../../../org/apache/shiro/web/filter/mgt/FilterChainResolver.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainResolver</A> <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.105"><B>getFilterChainResolver</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setFilterChainResolver(org.apache.shiro.web.filter.mgt.FilterChainResolver)"><!-- --></A><H3>
setFilterChainResolver</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.109"><B>setFilterChainResolver</B></A>(<A HREF="../../../../../org/apache/shiro/web/filter/mgt/FilterChainResolver.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainResolver</A>&nbsp;filterChainResolver)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isStaticSecurityManagerEnabled()"><!-- --></A><H3>
isStaticSecurityManagerEnabled</H3>
<PRE>
public boolean <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.129"><B>isStaticSecurityManagerEnabled</B></A>()</PRE>
<DL>
<DD>Returns <code>true</code> if the constructed <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getSecurityManager()"><CODE>securityManager</CODE></A> reference should be bound
to static memory (via
<code>SecurityUtils.</code><A HREF="../../../../../org/apache/shiro/SecurityUtils.html#setSecurityManager(org.apache.shiro.mgt.SecurityManager)"><CODE>setSecurityManager</CODE></A>),
<code>false</code> otherwise.
<p/>
The default value is <code>false</code>.
<p/>
<P>
<DD><DL>
<DT><B>Returns:</B><DD><code>true</code> if the constructed <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getSecurityManager()"><CODE>securityManager</CODE></A> reference should be bound
to static memory (via <code>SecurityUtils.</code><A HREF="../../../../../org/apache/shiro/SecurityUtils.html#setSecurityManager(org.apache.shiro.mgt.SecurityManager)"><CODE>setSecurityManager</CODE></A>),
<code>false</code> otherwise.<DT><B>Since:</B></DT>
<DD>1.2</DD>
<DT><B>See Also:</B><DD><a href="https://issues.apache.org/jira/browse/SHIRO-287">SHIRO-287</a></DL>
</DD>
</DL>
<HR>
<A NAME="setStaticSecurityManagerEnabled(boolean)"><!-- --></A><H3>
setStaticSecurityManagerEnabled</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.145"><B>setStaticSecurityManagerEnabled</B></A>(boolean&nbsp;staticSecurityManagerEnabled)</PRE>
<DL>
<DD>Sets if the constructed <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getSecurityManager()"><CODE>securityManager</CODE></A> reference should be bound
to static memory (via <code>SecurityUtils.</code><A HREF="../../../../../org/apache/shiro/SecurityUtils.html#setSecurityManager(org.apache.shiro.mgt.SecurityManager)"><CODE>setSecurityManager</CODE></A>).
<p/>
The default value is <code>false</code>.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>staticSecurityManagerEnabled</CODE> - if the constructed <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getSecurityManager()"><CODE>securityManager</CODE></A> reference
should be bound to static memory (via
<code>SecurityUtils.</code><A HREF="../../../../../org/apache/shiro/SecurityUtils.html#setSecurityManager(org.apache.shiro.mgt.SecurityManager)"><CODE>setSecurityManager</CODE></A>).<DT><B>Since:</B></DT>
<DD>1.2</DD>
<DT><B>See Also:</B><DD><a href="https://issues.apache.org/jira/browse/SHIRO-287">SHIRO-287</a></DL>
</DD>
</DL>
<HR>
<A NAME="onFilterConfigSet()"><!-- --></A><H3>
onFilterConfigSet</H3>
<PRE>
protected final void <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.149"><B>onFilterConfigSet</B></A>()
throws <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html#onFilterConfigSet()">AbstractFilter</A></CODE></B></DD>
<DD>Template method to be overridden by subclasses to perform initialization logic at start-up. The
<code>ServletContext</code> and <code>FilterConfig</code> will be accessible
(and non-<code>null</code>) at the time this method is invoked via the
<A HREF="../../../../../org/apache/shiro/web/servlet/ServletContextSupport.html#getServletContext()"><CODE>getServletContext()</CODE></A> and <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html#getFilterConfig()"><CODE>getFilterConfig()</CODE></A>
methods respectively.
<p/>
<code>init-param</code> values may be conveniently obtained via the <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html#getInitParam(java.lang.String)"><CODE>AbstractFilter.getInitParam(String)</CODE></A> method.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html#onFilterConfigSet()">onFilterConfigSet</A></CODE> in class <CODE><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html" title="class in org.apache.shiro.web.servlet">AbstractFilter</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></CODE> - if the subclass has an error upon initialization.</DL>
</DD>
</DL>
<HR>
<A NAME="init()"><!-- --></A><H3>
init</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.177"><B>init</B></A>()
throws <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="createDefaultSecurityManager()"><!-- --></A><H3>
createDefaultSecurityManager</H3>
<PRE>
protected <A HREF="../../../../../org/apache/shiro/web/mgt/WebSecurityManager.html" title="interface in org.apache.shiro.web.mgt">WebSecurityManager</A> <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.194"><B>createDefaultSecurityManager</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isHttpSessions()"><!-- --></A><H3>
isHttpSessions</H3>
<PRE>
protected boolean <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.198"><B>isHttpSessions</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="wrapServletRequest(javax.servlet.http.HttpServletRequest)"><!-- --></A><H3>
wrapServletRequest</H3>
<PRE>
protected <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A> <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.210"><B>wrapServletRequest</B></A>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServletRequest.html?is-external=true" title="class or interface in javax.servlet.http">HttpServletRequest</A>&nbsp;orig)</PRE>
<DL>
<DD>Wraps the original HttpServletRequest in a <A HREF="../../../../../org/apache/shiro/web/servlet/ShiroHttpServletRequest.html" title="class in org.apache.shiro.web.servlet"><CODE>ShiroHttpServletRequest</CODE></A>, which is required for supporting
Servlet Specification behavior backed by a <A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject"><CODE>Subject</CODE></A> instance.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>orig</CODE> - the original Servlet Container-provided incoming <code>HttpServletRequest</code> instance.
<DT><B>Returns:</B><DD><A HREF="../../../../../org/apache/shiro/web/servlet/ShiroHttpServletRequest.html" title="class in org.apache.shiro.web.servlet"><CODE>ShiroHttpServletRequest</CODE></A> instance wrapping the original.<DT><B>Since:</B></DT>
<DD>1.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="prepareServletRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)"><!-- --></A><H3>
prepareServletRequest</H3>
<PRE>
protected <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A> <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.229"><B>prepareServletRequest</B></A>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A>&nbsp;chain)</PRE>
<DL>
<DD>Prepares the <code>ServletRequest</code> instance that will be passed to the <code>FilterChain</code> for request
processing.
<p/>
If the <code>ServletRequest</code> is an instance of <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServletRequest.html?is-external=true" title="class or interface in javax.servlet.http"><CODE>HttpServletRequest</CODE></A>, the value returned from this method
is obtained by calling <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#wrapServletRequest(javax.servlet.http.HttpServletRequest)"><CODE>wrapServletRequest(javax.servlet.http.HttpServletRequest)</CODE></A> to allow Shiro-specific
HTTP behavior, otherwise the original <code>ServletRequest</code> argument is returned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>request</CODE> - the incoming ServletRequest<DD><CODE>response</CODE> - the outgoing ServletResponse<DD><CODE>chain</CODE> - the Servlet Container provided <code>FilterChain</code> that will receive the returned request.
<DT><B>Returns:</B><DD>the <code>ServletRequest</code> instance that will be passed to the <code>FilterChain</code> for request processing.<DT><B>Since:</B></DT>
<DD>1.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="wrapServletResponse(javax.servlet.http.HttpServletResponse, org.apache.shiro.web.servlet.ShiroHttpServletRequest)"><!-- --></A><H3>
wrapServletResponse</H3>
<PRE>
protected <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A> <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.248"><B>wrapServletResponse</B></A>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServletResponse.html?is-external=true" title="class or interface in javax.servlet.http">HttpServletResponse</A>&nbsp;orig,
<A HREF="../../../../../org/apache/shiro/web/servlet/ShiroHttpServletRequest.html" title="class in org.apache.shiro.web.servlet">ShiroHttpServletRequest</A>&nbsp;request)</PRE>
<DL>
<DD>Returns a new <A HREF="../../../../../org/apache/shiro/web/servlet/ShiroHttpServletResponse.html" title="class in org.apache.shiro.web.servlet"><CODE>ShiroHttpServletResponse</CODE></A> instance, wrapping the <code>orig</code> argument, in order to provide
correct URL rewriting behavior required by the Servlet Specification when using Shiro-based sessions (and not
Servlet Container HTTP-based sessions).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>orig</CODE> - the original <code>HttpServletResponse</code> instance provided by the Servlet Container.<DD><CODE>request</CODE> - the <code>ShiroHttpServletRequest</code> instance wrapping the original request.
<DT><B>Returns:</B><DD>the wrapped ServletResponse instance to use during <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet"><CODE>FilterChain</CODE></A> execution.<DT><B>Since:</B></DT>
<DD>1.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="prepareServletResponse(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)"><!-- --></A><H3>
prepareServletResponse</H3>
<PRE>
protected <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A> <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.271"><B>prepareServletResponse</B></A>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A>&nbsp;chain)</PRE>
<DL>
<DD>Prepares the <code>ServletResponse</code> instance that will be passed to the <code>FilterChain</code> for request
processing.
<p/>
This implementation delegates to <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#wrapServletRequest(javax.servlet.http.HttpServletRequest)"><CODE>wrapServletRequest(javax.servlet.http.HttpServletRequest)</CODE></A>
only if Shiro-based sessions are enabled (that is, !<A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#isHttpSessions()"><CODE>isHttpSessions()</CODE></A>) and the request instance is a
<A HREF="../../../../../org/apache/shiro/web/servlet/ShiroHttpServletRequest.html" title="class in org.apache.shiro.web.servlet"><CODE>ShiroHttpServletRequest</CODE></A>. This ensures that any URL rewriting that occurs is handled correctly using the
Shiro-managed Session's sessionId and not a servlet container session ID.
<p/>
If HTTP-based sessions are enabled (the default), then this method does nothing and just returns the
<code>ServletResponse</code> argument as-is, relying on the default Servlet Container URL rewriting logic.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>request</CODE> - the incoming ServletRequest<DD><CODE>response</CODE> - the outgoing ServletResponse<DD><CODE>chain</CODE> - the Servlet Container provided <code>FilterChain</code> that will receive the returned request.
<DT><B>Returns:</B><DD>the <code>ServletResponse</code> instance that will be passed to the <code>FilterChain</code> during request processing.<DT><B>Since:</B></DT>
<DD>1.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="createSubject(javax.servlet.ServletRequest, javax.servlet.ServletResponse)"><!-- --></A><H3>
createSubject</H3>
<PRE>
protected <A HREF="../../../../../org/apache/shiro/web/subject/WebSubject.html" title="interface in org.apache.shiro.web.subject">WebSubject</A> <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.291"><B>createSubject</B></A>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response)</PRE>
<DL>
<DD>Creates a <A HREF="../../../../../org/apache/shiro/web/subject/WebSubject.html" title="interface in org.apache.shiro.web.subject"><CODE>WebSubject</CODE></A> instance to associate with the incoming request/response pair which will be used
throughout the request/response execution.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>request</CODE> - the incoming <code>ServletRequest</code><DD><CODE>response</CODE> - the outgoing <code>ServletResponse</code>
<DT><B>Returns:</B><DD>the <code>WebSubject</code> instance to associate with the request/response execution<DT><B>Since:</B></DT>
<DD>1.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="updateSessionLastAccessTime(javax.servlet.ServletRequest, javax.servlet.ServletResponse)"><!-- --></A><H3>
updateSessionLastAccessTime</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.307"><B>updateSessionLastAccessTime</B></A>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response)</PRE>
<DL>
<DD>Updates any 'native' Session's last access time that might exist to the timestamp when this method is called.
If native sessions are not enabled (that is, standard Servlet container sessions are being used) or there is no
session (<code>subject.getSession(false) == null</code>), this method does nothing.
<p/>This method implementation merely calls
<code>Session.<A HREF="../../../../../org/apache/shiro/session/Session.html#touch()"><CODE>touch</CODE></A>()</code> on the session.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>request</CODE> - incoming request - ignored, but available to subclasses that might wish to override this method<DD><CODE>response</CODE> - outgoing response - ignored, but available to subclasses that might wish to override this method<DT><B>Since:</B></DT>
<DD>1.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="doFilterInternal(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)"><!-- --></A><H3>
doFilterInternal</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.350"><B>doFilterInternal</B></A>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;servletRequest,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;servletResponse,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A>&nbsp;chain)
throws <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletException.html?is-external=true" title="class or interface in javax.servlet">ServletException</A>,
<A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD><code>doFilterInternal</code> implementation that sets-up, executes, and cleans-up a Shiro-filtered request. It
performs the following ordered operations:
<ol>
<li><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#prepareServletRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)"><CODE>Prepares</CODE></A>
the incoming <code>ServletRequest</code> for use during Shiro's processing</li>
<li><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#prepareServletResponse(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)"><CODE>Prepares</CODE></A>
the outgoing <code>ServletResponse</code> for use during Shiro's processing</li>
<li> <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#createSubject(javax.servlet.ServletRequest, javax.servlet.ServletResponse)"><CODE>Creates</CODE></A> a
<A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject"><CODE>Subject</CODE></A> instance based on the specified request/response pair.</li>
<li>Finally <A HREF="../../../../../org/apache/shiro/subject/Subject.html#execute(java.lang.Runnable)"><CODE>executes</CODE></A> the
<A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#updateSessionLastAccessTime(javax.servlet.ServletRequest, javax.servlet.ServletResponse)"><CODE>updateSessionLastAccessTime(javax.servlet.ServletRequest, javax.servlet.ServletResponse)</CODE></A> and
<A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#executeChain(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)"><CODE>executeChain(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)</CODE></A>
methods</li>
</ol>
<p/>
The <code>Subject.</code><A HREF="../../../../../org/apache/shiro/subject/Subject.html#execute(java.lang.Runnable)"><CODE>execute(Runnable)</CODE></A> call in step #4 is used as an
implementation technique to guarantee proper thread binding and restoration is completed successfully.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html#doFilterInternal(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)">doFilterInternal</A></CODE> in class <CODE><A HREF="../../../../../org/apache/shiro/web/servlet/OncePerRequestFilter.html" title="class in org.apache.shiro.web.servlet">OncePerRequestFilter</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>servletRequest</CODE> - the incoming <code>ServletRequest</code><DD><CODE>servletResponse</CODE> - the outgoing <code>ServletResponse</code><DD><CODE>chain</CODE> - the container-provided <code>FilterChain</code> to execute
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE> - if an IO error occurs
<DD><CODE><A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletException.html?is-external=true" title="class or interface in javax.servlet">ServletException</A></CODE> - if an Throwable other than an IOException</DL>
</DD>
</DL>
<HR>
<A NAME="getExecutionChain(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)"><!-- --></A><H3>
getExecutionChain</H3>
<PRE>
protected <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A> <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.406"><B>getExecutionChain</B></A>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A>&nbsp;origChain)</PRE>
<DL>
<DD>Returns the <code>FilterChain</code> to execute for the given request.
<p/>
The <code>origChain</code> argument is the
original <code>FilterChain</code> supplied by the Servlet Container, but it may be modified to provide
more behavior by pre-pending further chains according to the Shiro configuration.
<p/>
This implementation returns the chain that will actually be executed by acquiring the chain from a
<A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getFilterChainResolver()"><CODE>filterChainResolver</CODE></A>. The resolver determines exactly which chain to
execute, typically based on URL configuration. If no chain is returned from the resolver call
(returns <code>null</code>), then the <code>origChain</code> will be returned by default.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>request</CODE> - the incoming ServletRequest<DD><CODE>response</CODE> - the outgoing ServletResponse<DD><CODE>origChain</CODE> - the original <code>FilterChain</code> provided by the Servlet Container
<DT><B>Returns:</B><DD>the <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet"><CODE>FilterChain</CODE></A> to execute for the given request<DT><B>Since:</B></DT>
<DD>1.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="executeChain(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)"><!-- --></A><H3>
executeChain</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/web/servlet/AbstractShiroFilter.html#line.446"><B>executeChain</B></A>(<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet">ServletRequest</A>&nbsp;request,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet">ServletResponse</A>&nbsp;response,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet">FilterChain</A>&nbsp;origChain)
throws <A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A>,
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletException.html?is-external=true" title="class or interface in javax.servlet">ServletException</A></PRE>
<DL>
<DD>Executes a <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet"><CODE>FilterChain</CODE></A> for the given request.
<p/>
This implementation first delegates to
<code><A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getExecutionChain(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)"><CODE>getExecutionChain</CODE></A></code>
to allow the application's Shiro configuration to determine exactly how the chain should execute. The resulting
value from that call is then executed directly by calling the returned <code>FilterChain</code>'s
<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)" title="class or interface in javax.servlet"><CODE>doFilter</CODE></A> method. That is:
<pre>
FilterChain chain = <A HREF="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html#getExecutionChain(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)"><CODE>getExecutionChain(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)</CODE></A>(request, response, origChain);
chain.<A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/FilterChain.html?is-external=true#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)" title="class or interface in javax.servlet"><CODE>doFilter</CODE></A>(request,response);</pre>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>request</CODE> - the incoming ServletRequest<DD><CODE>response</CODE> - the outgoing ServletResponse<DD><CODE>origChain</CODE> - the Servlet Container-provided chain that may be wrapped further by an application-configured
chain of Filters.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE> - if the underlying <code>chain.doFilter</code> call results in an IOException
<DD><CODE><A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletException.html?is-external=true" title="class or interface in javax.servlet">ServletException</A></CODE> - if the underlying <code>chain.doFilter</code> call results in a ServletException<DT><B>Since:</B></DT>
<DD>1.0</DD>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AbstractShiroFilter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/shiro/web/servlet/AbstractFilter.html" title="class in org.apache.shiro.web.servlet"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/shiro/web/servlet/AdviceFilter.html" title="class in org.apache.shiro.web.servlet"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/shiro/web/servlet/AbstractShiroFilter.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AbstractShiroFilter.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.apache.shiro.web.servlet.OncePerRequestFilter">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2004-2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>