blob: 2f57fdba91923bd7bdbd0960273e0a1680f1a14b [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.6) on Mon Mar 23 13:31:56 EDT 2020 -->
<title>ShiroFilterFactoryBean (Apache Shiro 1.5.2 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2020-03-23">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ShiroFilterFactoryBean (Apache Shiro 1.5.2 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ShiroFilterFactoryBean.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.shiro.spring.web</a></div>
<h2 title="Class ShiroFilterFactoryBean" class="title">Class ShiroFilterFactoryBean</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.shiro.spring.web.ShiroFilterFactoryBean</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/config/BeanPostProcessor.html?is-external=true" title="class or interface in org.springframework.beans.factory.config" class="externalLink">BeanPostProcessor</a></code>, <code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/FactoryBean.html?is-external=true" title="class or interface in org.springframework.beans.factory" class="externalLink">FactoryBean</a></code></dd>
</dl>
<hr>
<pre>public class <a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.116">ShiroFilterFactoryBean</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
implements <a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/FactoryBean.html?is-external=true" title="class or interface in org.springframework.beans.factory" class="externalLink">FactoryBean</a>, <a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/config/BeanPostProcessor.html?is-external=true" title="class or interface in org.springframework.beans.factory.config" class="externalLink">BeanPostProcessor</a></pre>
<div class="block"><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/FactoryBean.html?is-external=true" title="class or interface in org.springframework.beans.factory" class="externalLink"><code>FactoryBean</code></a> to be used in Spring-based web applications for
defining the master Shiro Filter.
<h4>Usage</h4>
Declare a DelegatingFilterProxy in <code>web.xml</code>, matching the filter name to the bean id:
<pre>
&lt;filter&gt;
&lt;filter-name&gt;<b>shiroFilter</b>&lt;/filter-name&gt;
&lt;filter-class&gt;org.springframework.web.filter.DelegatingFilterProxy&lt;filter-class&gt;
&lt;init-param&gt;
&lt;param-name&gt;targetFilterLifecycle&lt;/param-name&gt;
&lt;param-value&gt;true&lt;/param-value&gt;
&lt;/init-param&gt;
&lt;/filter&gt;
</pre>
Then, in your spring XML file that defines your web ApplicationContext:
<pre>
&lt;bean id="<b>shiroFilter</b>" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"&gt;
&lt;property name="securityManager" ref="securityManager"/&gt;
&lt;!-- other properties as necessary ... --&gt;
&lt;/bean&gt;
</pre>
<h4>Filter Auto-Discovery</h4>
While there is a <a href="#setFilters(java.util.Map)"><code>filters</code></a> property that allows you to assign a filter beans
to the 'pool' of filters available when defining <a href="#setFilterChainDefinitions(java.lang.String)"><code>filter chains</code></a>, it is
optional.
<p/>
This implementation is also a <a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/config/BeanPostProcessor.html?is-external=true" title="class or interface in org.springframework.beans.factory.config" class="externalLink"><code>BeanPostProcessor</code></a> and will acquire
any <a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink"><code>Filter</code></a> beans defined independently in your Spring application context. Upon
discovery, they will be automatically added to the <a href="#setFilters(java.util.Map)"><code>map</code></a> keyed by the bean ID.
That ID can then be used in the filter chain definitions, for example:
<pre>
&lt;bean id="<b>myCustomFilter</b>" class="com.class.that.implements.javax.servlet.Filter"/&gt;
...
&lt;bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"&gt;
...
&lt;property name="filterChainDefinitions"&gt;
&lt;value&gt;
/some/path/** = authc, <b>myCustomFilter</b>
&lt;/value&gt;
&lt;/property&gt;
&lt;/bean&gt;
</pre>
<h4>Global Property Values</h4>
Most Shiro servlet Filter implementations exist for defining custom Filter
<a href="#setFilterChainDefinitions(java.lang.String)"><code>chain definitions</code></a>. Most implementations subclass one of the
<a href="../../web/filter/AccessControlFilter.html" title="class in org.apache.shiro.web.filter"><code>AccessControlFilter</code></a>, <a href="../../web/filter/authc/AuthenticationFilter.html" title="class in org.apache.shiro.web.filter.authc"><code>AuthenticationFilter</code></a>, <a href="../../web/filter/authz/AuthorizationFilter.html" title="class in org.apache.shiro.web.filter.authz"><code>AuthorizationFilter</code></a> classes to simplify things,
and each of these 3 classes has configurable properties that are application-specific.
<p/>
A dilemma arises where, if you want to for example set the application's 'loginUrl' for any Filter, you don't want
to have to manually specify that value for <em>each</em> filter instance definied.
<p/>
To prevent configuration duplication, this implementation provides the following properties to allow you
to set relevant values in only one place:
<ul>
<li><a href="#setLoginUrl(java.lang.String)"><code>setLoginUrl(String)</code></a></li>
<li><a href="#setSuccessUrl(java.lang.String)"><code>setSuccessUrl(String)</code></a></li>
<li><a href="#setUnauthorizedUrl(java.lang.String)"><code>setUnauthorizedUrl(String)</code></a></li>
</ul>
Then at startup, any values specified via these 3 properties will be applied to all configured
Filter instances so you don't have to specify them individually on each filter instance. To ensure your own custom
filters benefit from this convenience, your filter implementation should subclass one of the 3 mentioned
earlier.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/web/filter/DelegatingFilterProxy.html?is-external=true" title="class or interface in org.springframework.web.filter" class="externalLink"><code>DelegatingFilterProxy</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.springframework.beans.factory.FactoryBean">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.springframework.beans.factory.<a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/FactoryBean.html?is-external=true" title="class or interface in org.springframework.beans.factory" class="externalLink">FactoryBean</a></h3>
<code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/FactoryBean.html?is-external=true#OBJECT_TYPE_ATTRIBUTE" title="class or interface in org.springframework.beans.factory" class="externalLink">OBJECT_TYPE_ATTRIBUTE</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ShiroFilterFactoryBean</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected <a href="../../web/filter/mgt/FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createFilterChainManager()">createFilterChainManager</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected <a href="../../web/servlet/AbstractShiroFilter.html" title="class in org.apache.shiro.web.servlet">AbstractShiroFilter</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createInstance()">createInstance</a></span>()</code></th>
<td class="colLast">
<div class="block">This implementation:
Ensures the required <a href="#setSecurityManager(org.apache.shiro.mgt.SecurityManager)"><code>securityManager</code></a>
property has been set
<a href="#createFilterChainManager()"><code>Creates</code></a> a <a href="../../web/filter/mgt/FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt"><code>FilterChainManager</code></a> instance that reflects the
configured <a href="#setFilters(java.util.Map)"><code>filters</code></a> and
<a href="#setFilterChainDefinitionMap(java.util.Map)"><code>filter chain definitions</code></a>
Wraps the FilterChainManager with a suitable
<a href="../../web/filter/mgt/FilterChainResolver.html" title="interface in org.apache.shiro.web.filter.mgt"><code>FilterChainResolver</code></a> since the Shiro Filter
implementations do not know of <code>FilterChainManager</code>s
Sets both the <code>SecurityManager</code> and <code>FilterChainResolver</code> instances on a new Shiro Filter
instance and returns that filter instance.
</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFilterChainDefinitionMap()">getFilterChainDefinitionMap</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the chainName-to-chainDefinition map of chain definitions to use for creating filter chains intercepted
by the Shiro Filter.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">Filter</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFilters()">getFilters</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the filterName-to-Filter map of filters available for reference when defining filter chain definitions.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLoginUrl()">getLoginUrl</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the application's login URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/AccessControlFilter.html" title="class in org.apache.shiro.web.filter"><code>AccessControlFilter</code></a> or <code>null</code> if no value should be assigned globally.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getObject()">getObject</a></span>()</code></th>
<td class="colLast">
<div class="block">Lazily creates and returns a <a href="../../web/servlet/AbstractShiroFilter.html" title="class in org.apache.shiro.web.servlet"><code>AbstractShiroFilter</code></a> concrete instance via the
<a href="#createInstance()"><code>createInstance()</code></a> method.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getObjectType()">getObjectType</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <code><a href="../../web/servlet/AbstractShiroFilter.html" title="class in org.apache.shiro.web.servlet"><code>AbstractShiroFilter</code></a>.class</code></div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSecurityManager()">getSecurityManager</a></span>()</code></th>
<td class="colLast">
<div class="block">Sets the application <code>SecurityManager</code> instance to be used by the constructed Shiro Filter.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSuccessUrl()">getSuccessUrl</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the application's after-login success URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/authc/AuthenticationFilter.html" title="class in org.apache.shiro.web.filter.authc"><code>AuthenticationFilter</code></a> or <code>null</code> if no value should be assigned globally.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUnauthorizedUrl()">getUnauthorizedUrl</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the application's after-login success URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/authc/AuthenticationFilter.html" title="class in org.apache.shiro.web.filter.authc"><code>AuthenticationFilter</code></a> or <code>null</code> if no value should be assigned globally.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSingleton()">isSingleton</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> always.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#postProcessAfterInitialization(java.lang.Object,java.lang.String)">postProcessAfterInitialization</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;bean,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;beanName)</code></th>
<td class="colLast">
<div class="block">Does nothing - only exists to satisfy the BeanPostProcessor interface and immediately returns the
<code>bean</code> argument.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#postProcessBeforeInitialization(java.lang.Object,java.lang.String)">postProcessBeforeInitialization</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;bean,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;beanName)</code></th>
<td class="colLast">
<div class="block">Inspects a bean, and if it implements the <a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink"><code>Filter</code></a> interface, automatically adds that filter
instance to the internal <a href="#setFilters(java.util.Map)"><code>filters map</code></a> that will be referenced
later during filter chain construction.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFilterChainDefinitionMap(java.util.Map)">setFilterChainDefinitionMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;filterChainDefinitionMap)</code></th>
<td class="colLast">
<div class="block">Sets the chainName-to-chainDefinition map of chain definitions to use for creating filter chains intercepted
by the Shiro Filter.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFilterChainDefinitions(java.lang.String)">setFilterChainDefinitions</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;definitions)</code></th>
<td class="colLast">
<div class="block">A convenience method that sets the <a href="#setFilterChainDefinitionMap(java.util.Map)"><code>filterChainDefinitionMap</code></a>
property by accepting a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>-compatible string (multi-line key/value pairs).</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFilters(java.util.Map)">setFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">Filter</a>&gt;&nbsp;filters)</code></th>
<td class="colLast">
<div class="block">Sets the filterName-to-Filter map of filters available for reference when creating
<a href="#setFilterChainDefinitionMap(java.util.Map)"><code>filter chain definitions</code></a>.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setLoginUrl(java.lang.String)">setLoginUrl</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;loginUrl)</code></th>
<td class="colLast">
<div class="block">Sets the application's login URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/AccessControlFilter.html" title="class in org.apache.shiro.web.filter"><code>AccessControlFilter</code></a>.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSecurityManager(org.apache.shiro.mgt.SecurityManager)">setSecurityManager</a></span>&#8203;(<a href="../../mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</a>&nbsp;securityManager)</code></th>
<td class="colLast">
<div class="block">Sets the application <code>SecurityManager</code> instance to be used by the constructed Shiro Filter.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSuccessUrl(java.lang.String)">setSuccessUrl</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;successUrl)</code></th>
<td class="colLast">
<div class="block">Sets the application's after-login success URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/authc/AuthenticationFilter.html" title="class in org.apache.shiro.web.filter.authc"><code>AuthenticationFilter</code></a>.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setUnauthorizedUrl(java.lang.String)">setUnauthorizedUrl</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;unauthorizedUrl)</code></th>
<td class="colLast">
<div class="block">Sets the application's 'unauthorized' URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/authz/AuthorizationFilter.html" title="class in org.apache.shiro.web.filter.authz"><code>AuthorizationFilter</code></a>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ShiroFilterFactoryBean</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.132">ShiroFilterFactoryBean</a>()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getSecurityManager()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSecurityManager</h4>
<pre class="methodSignature">public&nbsp;<a href="../../mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.143">getSecurityManager</a>()</pre>
<div class="block">Sets the application <code>SecurityManager</code> instance to be used by the constructed Shiro Filter. This is a
required property - failure to set it will throw an initialization exception.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the application <code>SecurityManager</code> instance to be used by the constructed Shiro Filter.</dd>
</dl>
</li>
</ul>
<a id="setSecurityManager(org.apache.shiro.mgt.SecurityManager)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSecurityManager</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.153">setSecurityManager</a>&#8203;(<a href="../../mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</a>&nbsp;securityManager)</pre>
<div class="block">Sets the application <code>SecurityManager</code> instance to be used by the constructed Shiro Filter. This is a
required property - failure to set it will throw an initialization exception.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>securityManager</code> - the application <code>SecurityManager</code> instance to be used by the constructed Shiro Filter.</dd>
</dl>
</li>
</ul>
<a id="getLoginUrl()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLoginUrl</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.166">getLoginUrl</a>()</pre>
<div class="block">Returns the application's login URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/AccessControlFilter.html" title="class in org.apache.shiro.web.filter"><code>AccessControlFilter</code></a> or <code>null</code> if no value should be assigned globally. The default value
is <code>null</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the application's login URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/AccessControlFilter.html" title="class in org.apache.shiro.web.filter"><code>AccessControlFilter</code></a> or <code>null</code> if no value should be assigned globally.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#setLoginUrl(java.lang.String)"><code>setLoginUrl(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a id="setLoginUrl(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLoginUrl</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.185">setLoginUrl</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;loginUrl)</pre>
<div class="block">Sets the application's login URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/AccessControlFilter.html" title="class in org.apache.shiro.web.filter"><code>AccessControlFilter</code></a>. This is a convenience mechanism: for all configured <a href="#setFilters(java.util.Map)"><code>filters</code></a>,
as well for any default ones (<code>authc</code>, <code>user</code>, etc), this value will be passed on to each Filter
via the <a href="../../web/filter/AccessControlFilter.html#setLoginUrl(java.lang.String)"><code>AccessControlFilter.setLoginUrl(String)</code></a> method<b>*</b>. This eliminates the need to
configure the 'loginUrl' property manually on each filter instance, and instead that can be configured once
via this attribute.
<p/>
<b>*</b>If a filter already has already been explicitly configured with a value, it will
<em>not</em> receive this value. Individual filter configuration overrides this global convenience property.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>loginUrl</code> - the application's login URL to apply to as a convenience to all discovered
<a href="../../web/filter/AccessControlFilter.html" title="class in org.apache.shiro.web.filter"><code>AccessControlFilter</code></a> instances.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../web/filter/AccessControlFilter.html#setLoginUrl(java.lang.String)"><code>AccessControlFilter.setLoginUrl(String)</code></a></dd>
</dl>
</li>
</ul>
<a id="getSuccessUrl()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSuccessUrl</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.198">getSuccessUrl</a>()</pre>
<div class="block">Returns the application's after-login success URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/authc/AuthenticationFilter.html" title="class in org.apache.shiro.web.filter.authc"><code>AuthenticationFilter</code></a> or <code>null</code> if no value should be assigned globally. The default value
is <code>null</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the application's after-login success URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/authc/AuthenticationFilter.html" title="class in org.apache.shiro.web.filter.authc"><code>AuthenticationFilter</code></a> or <code>null</code> if no value should be assigned globally.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#setSuccessUrl(java.lang.String)"><code>setSuccessUrl(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a id="setSuccessUrl(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSuccessUrl</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.217">setSuccessUrl</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;successUrl)</pre>
<div class="block">Sets the application's after-login success URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/authc/AuthenticationFilter.html" title="class in org.apache.shiro.web.filter.authc"><code>AuthenticationFilter</code></a>. This is a convenience mechanism: for all configured <a href="#setFilters(java.util.Map)"><code>filters</code></a>,
as well for any default ones (<code>authc</code>, <code>user</code>, etc), this value will be passed on to each Filter
via the <a href="../../web/filter/authc/AuthenticationFilter.html#setSuccessUrl(java.lang.String)"><code>AuthenticationFilter.setSuccessUrl(String)</code></a> method<b>*</b>. This eliminates the need to
configure the 'successUrl' property manually on each filter instance, and instead that can be configured once
via this attribute.
<p/>
<b>*</b>If a filter already has already been explicitly configured with a value, it will
<em>not</em> receive this value. Individual filter configuration overrides this global convenience property.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>successUrl</code> - the application's after-login success URL to apply to as a convenience to all discovered
<a href="../../web/filter/AccessControlFilter.html" title="class in org.apache.shiro.web.filter"><code>AccessControlFilter</code></a> instances.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../web/filter/authc/AuthenticationFilter.html#setSuccessUrl(java.lang.String)"><code>AuthenticationFilter.setSuccessUrl(String)</code></a></dd>
</dl>
</li>
</ul>
<a id="getUnauthorizedUrl()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUnauthorizedUrl</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.230">getUnauthorizedUrl</a>()</pre>
<div class="block">Returns the application's after-login success URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/authc/AuthenticationFilter.html" title="class in org.apache.shiro.web.filter.authc"><code>AuthenticationFilter</code></a> or <code>null</code> if no value should be assigned globally. The default value
is <code>null</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the application's after-login success URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/authc/AuthenticationFilter.html" title="class in org.apache.shiro.web.filter.authc"><code>AuthenticationFilter</code></a> or <code>null</code> if no value should be assigned globally.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#setSuccessUrl(java.lang.String)"><code>setSuccessUrl(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a id="setUnauthorizedUrl(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUnauthorizedUrl</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.249">setUnauthorizedUrl</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;unauthorizedUrl)</pre>
<div class="block">Sets the application's 'unauthorized' URL to be assigned to all acquired Filters that subclass
<a href="../../web/filter/authz/AuthorizationFilter.html" title="class in org.apache.shiro.web.filter.authz"><code>AuthorizationFilter</code></a>. This is a convenience mechanism: for all configured <a href="#setFilters(java.util.Map)"><code>filters</code></a>,
as well for any default ones (<code>roles</code>, <code>perms</code>, etc), this value will be passed on to each Filter
via the <a href="../../web/filter/authz/AuthorizationFilter.html#setUnauthorizedUrl(java.lang.String)"><code>AuthorizationFilter.setUnauthorizedUrl(String)</code></a> method<b>*</b>. This eliminates the need to
configure the 'unauthorizedUrl' property manually on each filter instance, and instead that can be configured once
via this attribute.
<p/>
<b>*</b>If a filter already has already been explicitly configured with a value, it will
<em>not</em> receive this value. Individual filter configuration overrides this global convenience property.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>unauthorizedUrl</code> - the application's 'unauthorized' URL to apply to as a convenience to all discovered
<a href="../../web/filter/authz/AuthorizationFilter.html" title="class in org.apache.shiro.web.filter.authz"><code>AuthorizationFilter</code></a> instances.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../web/filter/authz/AuthorizationFilter.html#setUnauthorizedUrl(java.lang.String)"><code>AuthorizationFilter.setUnauthorizedUrl(String)</code></a></dd>
</dl>
</li>
</ul>
<a id="getFilters()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilters</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">Filter</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.259">getFilters</a>()</pre>
<div class="block">Returns the filterName-to-Filter map of filters available for reference when defining filter chain definitions.
All filter chain definitions will reference filters by the names in this map (i.e. the keys).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the filterName-to-Filter map of filters available for reference when defining filter chain definitions.</dd>
</dl>
</li>
</ul>
<a id="setFilters(java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFilters</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.281">setFilters</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">Filter</a>&gt;&nbsp;filters)</pre>
<div class="block">Sets the filterName-to-Filter map of filters available for reference when creating
<a href="#setFilterChainDefinitionMap(java.util.Map)"><code>filter chain definitions</code></a>.
<p/>
<b>Note:</b> This property is optional: this <code>FactoryBean</code> implementation will discover all beans in the
web application context that implement the <a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink"><code>Filter</code></a> interface and automatically add them to this filter
map under their bean name.
<p/>
For example, just defining this bean in a web Spring XML application context:
<pre>
&lt;bean id=&quot;myFilter&quot; class=&quot;com.class.that.implements.javax.servlet.Filter&quot;&gt;
...
&lt;/bean&gt;</pre>
Will automatically place that bean into this Filters map under the key '<b>myFilter</b>'.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filters</code> - the optional filterName-to-Filter map of filters available for reference when creating
<a href="#setFilterChainDefinitionMap(java.util.Map)"><code>(java.util.Map) filter chain definitions</code></a>.</dd>
</dl>
</li>
</ul>
<a id="getFilterChainDefinitionMap()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilterChainDefinitionMap</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.294">getFilterChainDefinitionMap</a>()</pre>
<div class="block">Returns the chainName-to-chainDefinition map of chain definitions to use for creating filter chains intercepted
by the Shiro Filter. Each map entry should conform to the format defined by the
<a href="../../web/filter/mgt/FilterChainManager.html#createChain(java.lang.String,java.lang.String)"><code>FilterChainManager.createChain(String, String)</code></a> JavaDoc, where the map key is the chain name (e.g. URL
path expression) and the map value is the comma-delimited string chain definition.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>he chainName-to-chainDefinition map of chain definitions to use for creating filter chains intercepted
by the Shiro Filter.</dd>
</dl>
</li>
</ul>
<a id="setFilterChainDefinitionMap(java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFilterChainDefinitionMap</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.307">setFilterChainDefinitionMap</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;filterChainDefinitionMap)</pre>
<div class="block">Sets the chainName-to-chainDefinition map of chain definitions to use for creating filter chains intercepted
by the Shiro Filter. Each map entry should conform to the format defined by the
<a href="../../web/filter/mgt/FilterChainManager.html#createChain(java.lang.String,java.lang.String)"><code>FilterChainManager.createChain(String, String)</code></a> JavaDoc, where the map key is the chain name (e.g. URL
path expression) and the map value is the comma-delimited string chain definition.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filterChainDefinitionMap</code> - the chainName-to-chainDefinition map of chain definitions to use for creating
filter chains intercepted by the Shiro Filter.</dd>
</dl>
</li>
</ul>
<a id="setFilterChainDefinitions(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFilterChainDefinitions</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.321">setFilterChainDefinitions</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;definitions)</pre>
<div class="block">A convenience method that sets the <a href="#setFilterChainDefinitionMap(java.util.Map)"><code>filterChainDefinitionMap</code></a>
property by accepting a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>-compatible string (multi-line key/value pairs).
Each key/value pair must conform to the format defined by the
<a href="../../web/filter/mgt/FilterChainManager.html#createChain(java.lang.String,java.lang.String)"><code>FilterChainManager.createChain(String,String)</code></a> JavaDoc - each property key is an ant URL
path expression and the value is the comma-delimited chain definition.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>definitions</code> - a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>-compatible string (multi-line key/value pairs)
where each key/value pair represents a single urlPathExpression-commaDelimitedChainDefinition.</dd>
</dl>
</li>
</ul>
<a id="getObject()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getObject</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.341">getObject</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></pre>
<div class="block">Lazily creates and returns a <a href="../../web/servlet/AbstractShiroFilter.html" title="class in org.apache.shiro.web.servlet"><code>AbstractShiroFilter</code></a> concrete instance via the
<a href="#createInstance()"><code>createInstance()</code></a> method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/FactoryBean.html?is-external=true#getObject()" title="class or interface in org.springframework.beans.factory" class="externalLink">getObject</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/FactoryBean.html?is-external=true" title="class or interface in org.springframework.beans.factory" class="externalLink">FactoryBean</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the application's Shiro Filter instance used to filter incoming web requests.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></code> - if there is a problem creating the <code>Filter</code> instance.</dd>
</dl>
</li>
</ul>
<a id="getObjectType()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getObjectType</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.353">getObjectType</a>()</pre>
<div class="block">Returns <code><a href="../../web/servlet/AbstractShiroFilter.html" title="class in org.apache.shiro.web.servlet"><code>AbstractShiroFilter</code></a>.class</code></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/FactoryBean.html?is-external=true#getObjectType()" title="class or interface in org.springframework.beans.factory" class="externalLink">getObjectType</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/FactoryBean.html?is-external=true" title="class or interface in org.springframework.beans.factory" class="externalLink">FactoryBean</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code><a href="../../web/servlet/AbstractShiroFilter.html" title="class in org.apache.shiro.web.servlet"><code>AbstractShiroFilter</code></a>.class</code></dd>
</dl>
</li>
</ul>
<a id="isSingleton()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSingleton</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.362">isSingleton</a>()</pre>
<div class="block">Returns <code>true</code> always. There is almost always only ever 1 Shiro <code>Filter</code> per web application.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/FactoryBean.html?is-external=true#isSingleton()" title="class or interface in org.springframework.beans.factory" class="externalLink">isSingleton</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/FactoryBean.html?is-external=true" title="class or interface in org.springframework.beans.factory" class="externalLink">FactoryBean</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> always. There is almost always only ever 1 Shiro <code>Filter</code> per web application.</dd>
</dl>
</li>
</ul>
<a id="createFilterChainManager()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createFilterChainManager</h4>
<pre class="methodSignature">protected&nbsp;<a href="../../web/filter/mgt/FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.366">createFilterChainManager</a>()</pre>
</li>
</ul>
<a id="createInstance()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createInstance</h4>
<pre class="methodSignature">protected&nbsp;<a href="../../web/servlet/AbstractShiroFilter.html" title="class in org.apache.shiro.web.servlet">AbstractShiroFilter</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.422">createInstance</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></pre>
<div class="block">This implementation:
<ol>
<li>Ensures the required <a href="#setSecurityManager(org.apache.shiro.mgt.SecurityManager)"><code>securityManager</code></a>
property has been set</li>
<li><a href="#createFilterChainManager()"><code>Creates</code></a> a <a href="../../web/filter/mgt/FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt"><code>FilterChainManager</code></a> instance that reflects the
configured <a href="#setFilters(java.util.Map)"><code>filters</code></a> and
<a href="#setFilterChainDefinitionMap(java.util.Map)"><code>filter chain definitions</code></a></li>
<li>Wraps the FilterChainManager with a suitable
<a href="../../web/filter/mgt/FilterChainResolver.html" title="interface in org.apache.shiro.web.filter.mgt"><code>FilterChainResolver</code></a> since the Shiro Filter
implementations do not know of <code>FilterChainManager</code>s</li>
<li>Sets both the <code>SecurityManager</code> and <code>FilterChainResolver</code> instances on a new Shiro Filter
instance and returns that filter instance.</li>
</ol></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new Shiro Filter reflecting any configured filters and filter chain definitions.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></code> - if there is a problem creating the AbstractShiroFilter instance.</dd>
</dl>
</li>
</ul>
<a id="postProcessBeforeInitialization(java.lang.Object,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>postProcessBeforeInitialization</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.499">postProcessBeforeInitialization</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;bean,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;beanName)
throws <a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/BeansException.html?is-external=true" title="class or interface in org.springframework.beans" class="externalLink">BeansException</a></pre>
<div class="block">Inspects a bean, and if it implements the <a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink"><code>Filter</code></a> interface, automatically adds that filter
instance to the internal <a href="#setFilters(java.util.Map)"><code>filters map</code></a> that will be referenced
later during filter chain construction.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/config/BeanPostProcessor.html?is-external=true#postProcessBeforeInitialization(java.lang.Object,java.lang.String)" title="class or interface in org.springframework.beans.factory.config" class="externalLink">postProcessBeforeInitialization</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/config/BeanPostProcessor.html?is-external=true" title="class or interface in org.springframework.beans.factory.config" class="externalLink">BeanPostProcessor</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/BeansException.html?is-external=true" title="class or interface in org.springframework.beans" class="externalLink">BeansException</a></code></dd>
</dl>
</li>
</ul>
<a id="postProcessAfterInitialization(java.lang.Object,java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>postProcessAfterInitialization</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.515">postProcessAfterInitialization</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;bean,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;beanName)
throws <a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/BeansException.html?is-external=true" title="class or interface in org.springframework.beans" class="externalLink">BeansException</a></pre>
<div class="block">Does nothing - only exists to satisfy the BeanPostProcessor interface and immediately returns the
<code>bean</code> argument.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/config/BeanPostProcessor.html?is-external=true#postProcessAfterInitialization(java.lang.Object,java.lang.String)" title="class or interface in org.springframework.beans.factory.config" class="externalLink">postProcessAfterInitialization</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/factory/config/BeanPostProcessor.html?is-external=true" title="class or interface in org.springframework.beans.factory.config" class="externalLink">BeanPostProcessor</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/beans/BeansException.html?is-external=true" title="class or interface in org.springframework.beans" class="externalLink">BeansException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ShiroFilterFactoryBean.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>