blob: 2e167745860e956afda0a170d7f6c5e7186539b0 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="fr">
<head>
<!-- Generated by javadoc (1.8.0_201) on Sat May 02 22:20:04 CEST 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ShiroFilterFactoryBean (Apache Shiro 1.5.3 API)</title>
<meta name="date" content="2020-05-02">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.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.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"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";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.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">
<li>Prev&nbsp;Class</li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/shiro/spring/web/ShiroFilterFactoryBean.html" target="_top">Frames</a></li>
<li><a href="ShiroFilterFactoryBean.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.shiro.spring.web</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/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">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><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">BeanPostProcessor</a>, <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">FactoryBean</a></dd>
</dl>
<hr>
<br>
<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/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">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">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">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"><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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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"><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"><code>Filter</code></a> beans defined independently in your Spring application context. Upon
discovery, they will be automatically added to the <a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setFilterChainDefinitions-java.lang.String-"><code>chain definitions</code></a>. Most implementations subclass one of the
<a href="../../../../../org/apache/shiro/web/filter/AccessControlFilter.html" title="class in org.apache.shiro.web.filter"><code>AccessControlFilter</code></a>, <a href="../../../../../org/apache/shiro/web/filter/authc/AuthenticationFilter.html" title="class in org.apache.shiro.web.filter.authc"><code>AuthenticationFilter</code></a>, <a href="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setLoginUrl-java.lang.String-"><code>setLoginUrl(String)</code></a></li>
<li><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setSuccessUrl-java.lang.String-"><code>setSuccessUrl(String)</code></a></li>
<li><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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"><code>DelegatingFilterProxy</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="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">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">OBJECT_TYPE_ATTRIBUTE</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#ShiroFilterFactoryBean--">ShiroFilterFactoryBean</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/shiro/web/filter/mgt/FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#createFilterChainManager--">createFilterChainManager</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html" title="class in org.apache.shiro.web.servlet">AbstractShiroFilter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#createInstance--">createInstance</a></span>()</code>
<div class="block">This implementation:
Ensures the required <a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setSecurityManager-org.apache.shiro.mgt.SecurityManager-"><code>securityManager</code></a>
property has been set
<a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#createFilterChainManager--"><code>Creates</code></a> a <a href="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setFilters-java.util.Map-"><code>filters</code></a> and
<a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setFilterChainDefinitionMap-java.util.Map-"><code>filter chain definitions</code></a>
Wraps the FilterChainManager with a suitable
<a href="../../../../../org/apache/shiro/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/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#getFilterChainDefinitionMap--">getFilterChainDefinitionMap</a></span>()</code>
<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/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet">Filter</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#getFilters--">getFilters</a></span>()</code>
<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/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#getLoginUrl--">getLoginUrl</a></span>()</code>
<div class="block">Returns the application's login URL to be assigned to all acquired Filters that subclass
<a href="../../../../../org/apache/shiro/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/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#getObject--">getObject</a></span>()</code>
<div class="block">Lazily creates and returns a <a href="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html" title="class in org.apache.shiro.web.servlet"><code>AbstractShiroFilter</code></a> concrete instance via the
<a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#getObjectType--">getObjectType</a></span>()</code>
<div class="block">Returns <code><a href="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#getSecurityManager--">getSecurityManager</a></span>()</code>
<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/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#getSuccessUrl--">getSuccessUrl</a></span>()</code>
<div class="block">Returns the application's after-login success URL to be assigned to all acquired Filters that subclass
<a href="../../../../../org/apache/shiro/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/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#getUnauthorizedUrl--">getUnauthorizedUrl</a></span>()</code>
<div class="block">Returns the application's after-login success URL to be assigned to all acquired Filters that subclass
<a href="../../../../../org/apache/shiro/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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#isSingleton--">isSingleton</a></span>()</code>
<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/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#postProcessAfterInitialization-java.lang.Object-java.lang.String-">postProcessAfterInitialization</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;bean,
<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;beanName)</code>
<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/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#postProcessBeforeInitialization-java.lang.Object-java.lang.String-">postProcessBeforeInitialization</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;bean,
<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;beanName)</code>
<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"><code>Filter</code></a> interface, automatically adds that filter
instance to the internal <a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setFilterChainDefinitionMap-java.util.Map-">setFilterChainDefinitionMap</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;filterChainDefinitionMap)</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setFilterChainDefinitions-java.lang.String-">setFilterChainDefinitions</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;definitions)</code>
<div class="block">A convenience method that sets the <a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setFilterChainDefinitionMap-java.util.Map-"><code>filterChainDefinitionMap</code></a>
property by accepting a <a href="https://docs.oracle.com/javase/6/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util"><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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setFilters-java.util.Map-">setFilters</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet">Filter</a>&gt;&nbsp;filters)</code>
<div class="block">Sets the filterName-to-Filter map of filters available for reference when creating
<a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setLoginUrl-java.lang.String-">setLoginUrl</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;loginUrl)</code>
<div class="block">Sets the application's login URL to be assigned to all acquired Filters that subclass
<a href="../../../../../org/apache/shiro/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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setSecurityManager-org.apache.shiro.mgt.SecurityManager-">setSecurityManager</a></span>(<a href="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</a>&nbsp;securityManager)</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setSuccessUrl-java.lang.String-">setSuccessUrl</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;successUrl)</code>
<div class="block">Sets the application's after-login success URL to be assigned to all acquired Filters that subclass
<a href="../../../../../org/apache/shiro/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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setUnauthorizedUrl-java.lang.String-">setUnauthorizedUrl</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;unauthorizedUrl)</code>
<div class="block">Sets the application's 'unauthorized' URL to be assigned to all acquired Filters that subclass
<a href="../../../../../org/apache/shiro/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 name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.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="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.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="https://docs.oracle.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></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ShiroFilterFactoryBean--">
<!-- -->
</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>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getSecurityManager--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSecurityManager</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/shiro/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 name="setSecurityManager-org.apache.shiro.mgt.SecurityManager-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSecurityManager</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.153">setSecurityManager</a>(<a href="../../../../../org/apache/shiro/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 name="getLoginUrl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLoginUrl</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setLoginUrl-java.lang.String-"><code>setLoginUrl(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a name="setLoginUrl-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLoginUrl</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.185">setLoginUrl</a>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/web/filter/AccessControlFilter.html#setLoginUrl-java.lang.String-"><code>AccessControlFilter.setLoginUrl(String)</code></a></dd>
</dl>
</li>
</ul>
<a name="getSuccessUrl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSuccessUrl</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setSuccessUrl-java.lang.String-"><code>setSuccessUrl(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a name="setSuccessUrl-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSuccessUrl</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.217">setSuccessUrl</a>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/web/filter/authc/AuthenticationFilter.html#setSuccessUrl-java.lang.String-"><code>AuthenticationFilter.setSuccessUrl(String)</code></a></dd>
</dl>
</li>
</ul>
<a name="getUnauthorizedUrl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUnauthorizedUrl</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setSuccessUrl-java.lang.String-"><code>setSuccessUrl(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a name="setUnauthorizedUrl-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUnauthorizedUrl</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.249">setUnauthorizedUrl</a>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/web/filter/authz/AuthorizationFilter.html#setUnauthorizedUrl-java.lang.String-"><code>AuthorizationFilter.setUnauthorizedUrl(String)</code></a></dd>
</dl>
</li>
</ul>
<a name="getFilters--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilters</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet">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 name="setFilters-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFilters</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.281">setFilters</a>(<a href="https://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet">Filter</a>&gt;&nbsp;filters)</pre>
<div class="block">Sets the filterName-to-Filter map of filters available for reference when creating
<a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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"><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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setFilterChainDefinitionMap-java.util.Map-"><code>(java.util.Map) filter chain definitions</code></a>.</dd>
</dl>
</li>
</ul>
<a name="getFilterChainDefinitionMap--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilterChainDefinitionMap</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">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="../../../../../org/apache/shiro/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 name="setFilterChainDefinitionMap-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFilterChainDefinitionMap</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.307">setFilterChainDefinitionMap</a>(<a href="https://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">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="../../../../../org/apache/shiro/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 name="setFilterChainDefinitions-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFilterChainDefinitions</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.321">setFilterChainDefinitions</a>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;definitions)</pre>
<div class="block">A convenience method that sets the <a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setFilterChainDefinitionMap-java.util.Map-"><code>filterChainDefinitionMap</code></a>
property by accepting a <a href="https://docs.oracle.com/javase/6/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util"><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="../../../../../org/apache/shiro/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/6/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util"><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 name="getObject--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getObject</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">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/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Lazily creates and returns a <a href="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html" title="class in org.apache.shiro.web.servlet"><code>AbstractShiroFilter</code></a> concrete instance via the
<a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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">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">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/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if there is a problem creating the <code>Filter</code> instance.</dd>
</dl>
</li>
</ul>
<a name="getObjectType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getObjectType</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">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="../../../../../org/apache/shiro/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">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">FactoryBean</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code><a href="../../../../../org/apache/shiro/web/servlet/AbstractShiroFilter.html" title="class in org.apache.shiro.web.servlet"><code>AbstractShiroFilter</code></a>.class</code></dd>
</dl>
</li>
</ul>
<a name="isSingleton--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSingleton</h4>
<pre>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">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">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 name="createFilterChainManager--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createFilterChainManager</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/shiro/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 name="createInstance--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createInstance</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/shiro/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/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">This implementation:
<ol>
<li>Ensures the required <a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setSecurityManager-org.apache.shiro.mgt.SecurityManager-"><code>securityManager</code></a>
property has been set</li>
<li><a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#createFilterChainManager--"><code>Creates</code></a> a <a href="../../../../../org/apache/shiro/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="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setFilters-java.util.Map-"><code>filters</code></a> and
<a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#setFilterChainDefinitionMap-java.util.Map-"><code>filter chain definitions</code></a></li>
<li>Wraps the FilterChainManager with a suitable
<a href="../../../../../org/apache/shiro/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/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if there is a problem creating the AbstractShiroFilter instance.</dd>
</dl>
</li>
</ul>
<a name="postProcessBeforeInitialization-java.lang.Object-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>postProcessBeforeInitialization</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.499">postProcessBeforeInitialization</a>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;bean,
<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">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">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"><code>Filter</code></a> interface, automatically adds that filter
instance to the internal <a href="../../../../../org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#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">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">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">BeansException</a></code></dd>
</dl>
</li>
</ul>
<a name="postProcessAfterInitialization-java.lang.Object-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>postProcessAfterInitialization</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/spring/web/ShiroFilterFactoryBean.html#line.515">postProcessAfterInitialization</a>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;bean,
<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">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">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">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">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">BeansException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.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">
<li>Prev&nbsp;Class</li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/shiro/spring/web/ShiroFilterFactoryBean.html" target="_top">Frames</a></li>
<li><a href="ShiroFilterFactoryBean.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<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>
</body>
</html>