blob: 4462daad33050f991ae7a12a39c427d598b76f69 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>DefaultFilterChainManager (Apache Shiro :: Web 1.10.1 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.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.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="DefaultFilterChainManager (Apache Shiro :: Web 1.10.1 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,"i20":10,"i21":10,"i22":10,"i23":10,"i24":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"><!-- Matomo --> <script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ /* We explicitly disable cookie tracking to avoid privacy issues */ _paq.push(['disableCookies']); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//matomo.privacy.apache.org/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '2']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Matomo Code -->
<!-- ========= 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/DefaultFilterChainManager.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>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 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.web.filter.mgt</a></div>
<h2 title="Class DefaultFilterChainManager" class="title">Class DefaultFilterChainManager</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.web.filter.mgt.DefaultFilterChainManager</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
</dl>
<hr>
<pre>public class <a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.49">DefaultFilterChainManager</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="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></pre>
<div class="block">Default <a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt"><code>FilterChainManager</code></a> implementation maintaining a map of <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> instances
(key: filter name, value: Filter) as well as a map of <a href="NamedFilterList.html" title="interface in org.apache.shiro.web.filter.mgt"><code>NamedFilterList</code></a>s created from these
<code>Filter</code>s (key: filter chain name, value: NamedFilterList). The <code>NamedFilterList</code> is essentially a
<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet" class="externalLink"><code>FilterChain</code></a> that also has a name property by which it can be looked up.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="NamedFilterList.html" title="interface in org.apache.shiro.web.filter.mgt"><code>NamedFilterList</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section>
<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()">DefaultFilterChainManager</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.servlet.FilterConfig)">DefaultFilterChainManager</a></span>&#8203;(<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/FilterConfig.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterConfig</a>&nbsp;filterConfig)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section>
<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 void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addDefaultFilters(boolean)">addDefaultFilters</a></span>&#8203;(boolean&nbsp;init)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFilter(java.lang.String,javax.servlet.Filter)">addFilter</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;name,
<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>&nbsp;filter)</code></th>
<td class="colLast">
<div class="block">Adds a filter to the 'pool' of available filters that can be used when
<a href="FilterChainManager.html#addToChain(java.lang.String,java.lang.String,java.lang.String)"><code>creating filter chains</code></a>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFilter(java.lang.String,javax.servlet.Filter,boolean)">addFilter</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;name,
<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>&nbsp;filter,
boolean&nbsp;init)</code></th>
<td class="colLast">
<div class="block">Adds a filter to the 'pool' of available filters that can be used when
<a href="FilterChainManager.html#addToChain(java.lang.String,java.lang.String,java.lang.String)"><code>creating filter chains</code></a>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFilter(java.lang.String,javax.servlet.Filter,boolean,boolean)">addFilter</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;name,
<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>&nbsp;filter,
boolean&nbsp;init,
boolean&nbsp;overwrite)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addToChain(java.lang.String,java.lang.String)">addToChain</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;chainName,
<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;filterName)</code></th>
<td class="colLast">
<div class="block">Adds (appends) a filter to the filter chain identified by the given <code>chainName</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addToChain(java.lang.String,java.lang.String,java.lang.String)">addToChain</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;chainName,
<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;filterName,
<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;chainSpecificFilterConfig)</code></th>
<td class="colLast">
<div class="block">Adds (appends) a filter to the filter chain identified by the given <code>chainName</code>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applyChainConfig(java.lang.String,javax.servlet.Filter,java.lang.String)">applyChainConfig</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;chainName,
<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>&nbsp;filter,
<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;chainSpecificFilterConfig)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createChain(java.lang.String,java.lang.String)">createChain</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;chainName,
<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;chainDefinition)</code></th>
<td class="colLast">
<div class="block">Creates a filter chain for the given <code>chainName</code> with the specified <code>chainDefinition</code>
String.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createDefaultChain(java.lang.String)">createDefaultChain</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;chainName)</code></th>
<td class="colLast">
<div class="block">Creates a chain that should match any non-matched request paths, typically <code>/**</code> assuming an <code>AntPathMatcher</code> I used.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected <a href="NamedFilterList.html" title="interface in org.apache.shiro.web.filter.mgt">NamedFilterList</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ensureChain(java.lang.String)">ensureChain</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;chainName)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="NamedFilterList.html" title="interface in org.apache.shiro.web.filter.mgt">NamedFilterList</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChain(java.lang.String)">getChain</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;chainName)</code></th>
<td class="colLast">
<div class="block">Returns the filter chain identified by the specified <code>chainName</code> or <code>null</code> if there is no chain with
that name.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</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>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChainNames()">getChainNames</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the names of all configured chains or an empty <code>Set</code> if no chains have been configured.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><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></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFilter(java.lang.String)">getFilter</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;name)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" 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="NamedFilterList.html" title="interface in org.apache.shiro.web.filter.mgt">NamedFilterList</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFilterChains()">getFilterChains</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javaee/5/api/javax/servlet/FilterConfig.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterConfig</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFilterConfig()">getFilterConfig</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <code>FilterConfig</code> provided by the Servlet container at webapp startup.</div>
</td>
</tr>
<tr id="i15" 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 pool of available <code>Filter</code>s managed by this manager, keyed by <code>name</code>.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasChains()">hasChains</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> if one or more configured chains are available, <code>false</code> if none are configured.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initFilter(javax.servlet.Filter)">initFilter</a></span>&#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>&nbsp;filter)</code></th>
<td class="colLast">
<div class="block">Initializes the filter by calling <code>filter.init( <a href="#getFilterConfig()"><code>getFilterConfig()</code></a> );</code>.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javaee/5/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterChain</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#proxy(javax.servlet.FilterChain,java.lang.String)">proxy</a></span>&#8203;(<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterChain</a>&nbsp;original,
<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;chainName)</code></th>
<td class="colLast">
<div class="block">Proxies the specified <code>original</code> FilterChain with the named chain.</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="#setFilterChains(java.util.Map)">setFilterChains</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="NamedFilterList.html" title="interface in org.apache.shiro.web.filter.mgt">NamedFilterList</a>&gt;&nbsp;filterChains)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFilterConfig(javax.servlet.FilterConfig)">setFilterConfig</a></span>&#8203;(<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/FilterConfig.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterConfig</a>&nbsp;filterConfig)</code></th>
<td class="colLast">
<div class="block">Sets the <code>FilterConfig</code> provided by the Servlet container at webapp startup.</div>
</td>
</tr>
<tr id="i21" 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">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setGlobalFilters(java.util.List)">setGlobalFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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>&gt;&nbsp;globalFilterNames)</code></th>
<td class="colLast">
<div class="block">Configures the set of named filters that will match all paths.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected <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="#splitChainDefinition(java.lang.String)">splitChainDefinition</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;chainDefinition)</code></th>
<td class="colLast">
<div class="block">Splits the comma-delimited filter chain definition line into individual filter definition tokens.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected <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="#toNameConfigPair(java.lang.String)">toNameConfigPair</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;token)</code></th>
<td class="colLast">
<div class="block">Based on the given filter chain definition token (e.g.</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>
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DefaultFilterChainManager</h4>
<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.61">DefaultFilterChainManager</a>()</pre>
</li>
</ul>
<a id="&lt;init&gt;(javax.servlet.FilterConfig)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DefaultFilterChainManager</h4>
<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.68">DefaultFilterChainManager</a>&#8203;(<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/FilterConfig.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterConfig</a>&nbsp;filterConfig)</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getFilterConfig()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilterConfig</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/FilterConfig.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterConfig</a>&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.81">getFilterConfig</a>()</pre>
<div class="block">Returns the <code>FilterConfig</code> provided by the Servlet container at webapp startup.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>FilterConfig</code> provided by the Servlet container at webapp startup.</dd>
</dl>
</li>
</ul>
<a id="setFilterConfig(javax.servlet.FilterConfig)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFilterConfig</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.90">setFilterConfig</a>&#8203;(<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/FilterConfig.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterConfig</a>&nbsp;filterConfig)</pre>
<div class="block">Sets the <code>FilterConfig</code> provided by the Servlet container at webapp startup.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filterConfig</code> - the <code>FilterConfig</code> provided by the Servlet container at webapp startup.</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/web/filter/mgt/DefaultFilterChainManager.html#line.94">getFilters</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#getFilters()">FilterChainManager</a></code></span></div>
<div class="block">Returns the pool of available <code>Filter</code>s managed by this manager, keyed by <code>name</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#getFilters()">getFilters</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the pool of available <code>Filter</code>s managed by this manager, keyed by <code>name</code>.</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/web/filter/mgt/DefaultFilterChainManager.html#line.98">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>
</li>
</ul>
<a id="getFilterChains()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilterChains</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="NamedFilterList.html" title="interface in org.apache.shiro.web.filter.mgt">NamedFilterList</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.103">getFilterChains</a>()</pre>
</li>
</ul>
<a id="setFilterChains(java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFilterChains</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.107">setFilterChains</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="NamedFilterList.html" title="interface in org.apache.shiro.web.filter.mgt">NamedFilterList</a>&gt;&nbsp;filterChains)</pre>
</li>
</ul>
<a id="getFilter(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilter</h4>
<pre class="methodSignature">public&nbsp;<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>&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.112">getFilter</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;name)</pre>
</li>
</ul>
<a id="addFilter(java.lang.String,javax.servlet.Filter)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addFilter</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.116">addFilter</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;name,
<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>&nbsp;filter)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#addFilter(java.lang.String,javax.servlet.Filter)">FilterChainManager</a></code></span></div>
<div class="block">Adds a filter to the 'pool' of available filters that can be used when
<a href="FilterChainManager.html#addToChain(java.lang.String,java.lang.String,java.lang.String)"><code>creating filter chains</code></a>.
<p/>
Calling this method is effectively the same as calling
<code><a href="FilterChainManager.html#addFilter(java.lang.String,javax.servlet.Filter,boolean)"><code>addFilter</code></a>(name, filter, <b>false</b>);</code></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#addFilter(java.lang.String,javax.servlet.Filter)">addFilter</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name to assign to the filter, used to reference the filter in chain definitions</dd>
<dd><code>filter</code> - the filter to initialize and then add to the pool of available filters that can be used</dd>
</dl>
</li>
</ul>
<a id="addFilter(java.lang.String,javax.servlet.Filter,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addFilter</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.120">addFilter</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;name,
<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>&nbsp;filter,
boolean&nbsp;init)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#addFilter(java.lang.String,javax.servlet.Filter,boolean)">FilterChainManager</a></code></span></div>
<div class="block">Adds a filter to the 'pool' of available filters that can be used when
<a href="FilterChainManager.html#addToChain(java.lang.String,java.lang.String,java.lang.String)"><code>creating filter chains</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#addFilter(java.lang.String,javax.servlet.Filter,boolean)">addFilter</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name to assign to the filter, used to reference the filter in chain definitions</dd>
<dd><code>filter</code> - the filter to assign to the filter pool</dd>
<dd><code>init</code> - whether or not the <code>Filter</code> should be
<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html?is-external=true#init(javax.servlet.FilterConfig)" title="class or interface in javax.servlet" class="externalLink"><code>initialized</code></a> first before being added to the pool.</dd>
</dl>
</li>
</ul>
<a id="createDefaultChain(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDefaultChain</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.124">createDefaultChain</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;chainName)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#createDefaultChain(java.lang.String)">FilterChainManager</a></code></span></div>
<div class="block">Creates a chain that should match any non-matched request paths, typically <code>/**</code> assuming an <code>AntPathMatcher</code> I used.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#createDefaultChain(java.lang.String)">createDefaultChain</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>chainName</code> - The name of the chain to create, likely <code>/**</code>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>AntPathMatcher</code></dd>
</dl>
</li>
</ul>
<a id="createChain(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createChain</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.133">createChain</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;chainName,
<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;chainDefinition)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#createChain(java.lang.String,java.lang.String)">FilterChainManager</a></code></span></div>
<div class="block">Creates a filter chain for the given <code>chainName</code> with the specified <code>chainDefinition</code>
String.
<h3>Conventional Use</h3>
Because the <code>FilterChainManager</code> interface does not impose any restrictions on filter chain names,
(it expects only Strings), a convenient convention is to make the chain name an actual URL path expression
(such as an <code>Ant path expression</code>). For example:
<p/>
<code>createChain(<b><em>path_expression</em></b>, <em>path_specific_filter_chain_definition</em>);</code>
This convention can be used by a <a href="FilterChainResolver.html" title="interface in org.apache.shiro.web.filter.mgt"><code>FilterChainResolver</code></a> to inspect request URL paths
against the chain name (path) and, if a match is found, return the corresponding chain for runtime filtering.
<h3>Chain Definition Format</h3>
The <code>chainDefinition</code> method argument is expected to conform to the following format:
<pre>
filter1[optional_config1], filter2[optional_config2], ..., filterN[optional_configN]</pre>
where
<ol>
<li><code>filterN</code> is the name of a filter previously
<a href="FilterChainManager.html#addFilter(java.lang.String,javax.servlet.Filter)"><code>registered</code></a> with the manager, and</li>
<li><code>[optional_configN]</code> is an optional bracketed string that has meaning for that particular filter for
<em>this particular chain</em></li>
</ol>
If the filter does not need specific config for that chain name/URL path,
you may discard the brackets - that is, <code>filterN[]</code> just becomes <code>filterN</code>.
<p/>
And because this method does create a chain, remember that order matters! The comma-delimited filter tokens in
the <code>chainDefinition</code> specify the chain's execution order.
<h3>Examples</h3>
<pre>/account/** = authcBasic</pre>
This example says &quot;Create a filter named '<code>/account/**</code>' consisting of only the '<code>authcBasic</code>'
filter&quot;. Also because the <code>authcBasic</code> filter does not need any path-specific
config, it doesn't have any config brackets <code>[]</code>.
<p/>
<pre>/remoting/** = authcBasic, roles[b2bClient], perms[&quot;remote:invoke:wan,lan&quot;]</pre>
This example by contrast uses the 'roles' and 'perms' filters which <em>do</em> use bracket notation. This
definition says:
<p/>
Construct a filter chain named '<code>/remoting/**</code>' which
<ol>
<li>ensures the user is first authenticated (<code>authcBasic</code>) then</li>
<li>ensures that user has the <code>b2bClient</code> role, and then finally</li>
<li>ensures that they have the <code>remote:invoke:lan,wan</code> permission.</li>
</ol>
<p/>
<b>Note</b>: because elements within brackets [ ] can be comma-delimited themselves, you must quote the
internal bracket definition if commas are needed (the above example has 'lan,wan'). If we didn't do that, the
parser would interpret the chain definition as four tokens:
<ol>
<li>authcBasic</li>
<li>roles[b2bclient]</li>
<li>perms[remote:invoke:lan</li>
<li>wan]</li>
</ol>
which is obviously incorrect. So remember to use quotes if your internal bracket definitions need to use commas.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#createChain(java.lang.String,java.lang.String)">createChain</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>chainName</code> - the name to associate with the chain, conventionally a URL path pattern.</dd>
<dd><code>chainDefinition</code> - the string-formatted chain definition used to construct an actual
<a href="NamedFilterList.html" title="interface in org.apache.shiro.web.filter.mgt"><code>NamedFilterList</code></a> chain instance.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="FilterChainResolver.html" title="interface in org.apache.shiro.web.filter.mgt"><code>FilterChainResolver</code></a>,
<code>AntPathMatcher</code></dd>
</dl>
</li>
</ul>
<a id="splitChainDefinition(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitChainDefinition</h4>
<pre class="methodSignature">protected&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/web/filter/mgt/DefaultFilterChainManager.html#line.190">splitChainDefinition</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;chainDefinition)</pre>
<div class="block">Splits the comma-delimited filter chain definition line into individual filter definition tokens.
<p/>
Example Input:
<pre>
foo, bar[baz], blah[x, y]
</pre>
Resulting Output:
<pre>
output[0] == foo
output[1] == bar[baz]
output[2] == blah[x, y]
</pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>chainDefinition</code> - the comma-delimited filter chain definition.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array of filter definition tokens</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://issues.apache.org/jira/browse/SHIRO-205">SHIRO-205</a></dd>
</dl>
</li>
</ul>
<a id="toNameConfigPair(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toNameConfigPair</h4>
<pre class="methodSignature">protected&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/web/filter/mgt/DefaultFilterChainManager.html#line.217">toNameConfigPair</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;token)
throws org.apache.shiro.config.ConfigurationException</pre>
<div class="block">Based on the given filter chain definition token (e.g. 'foo' or 'foo[bar, baz]'), this will return the token
as a name/value pair, removing any brackets as necessary. Examples:
<table>
<tr>
<th>Input</th>
<th>Result</th>
</tr>
<tr>
<td><code>foo</code></td>
<td>returned[0] == <code>foo</code><br/>returned[1] == <code>null</code></td>
</tr>
<tr>
<td><code>foo[bar, baz]</code></td>
<td>returned[0] == <code>foo</code><br/>returned[1] == <code>bar, baz</code></td>
</tr>
</table></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>token</code> - the filter chain definition token</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A name/value pair representing the filter name and a (possibly null) config value.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.shiro.config.ConfigurationException</code> - if the token cannot be parsed</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://issues.apache.org/jira/browse/SHIRO-205">SHIRO-205</a></dd>
</dl>
</li>
</ul>
<a id="addFilter(java.lang.String,javax.servlet.Filter,boolean,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addFilter</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.262">addFilter</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;name,
<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>&nbsp;filter,
boolean&nbsp;init,
boolean&nbsp;overwrite)</pre>
</li>
</ul>
<a id="addToChain(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addToChain</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.275">addToChain</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;chainName,
<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;filterName)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#addToChain(java.lang.String,java.lang.String)">FilterChainManager</a></code></span></div>
<div class="block">Adds (appends) a filter to the filter chain identified by the given <code>chainName</code>. If there is no chain
with the given name, a new one is created and the filter will be the first in the chain.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#addToChain(java.lang.String,java.lang.String)">addToChain</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>chainName</code> - the name of the chain where the filter will be appended.</dd>
<dd><code>filterName</code> - the name of the <a href="FilterChainManager.html#addFilter(java.lang.String,javax.servlet.Filter)"><code>registered</code></a> filter to add to the chain.</dd>
</dl>
</li>
</ul>
<a id="addToChain(java.lang.String,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addToChain</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.279">addToChain</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;chainName,
<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;filterName,
<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;chainSpecificFilterConfig)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#addToChain(java.lang.String,java.lang.String,java.lang.String)">FilterChainManager</a></code></span></div>
<div class="block">Adds (appends) a filter to the filter chain identified by the given <code>chainName</code>. If there is no chain
with the given name, a new one is created and the filter will be the first in the chain.
<p/>
Note that the final argument expects the associated filter to be an instance of
a <a href="../PathConfigProcessor.html" title="interface in org.apache.shiro.web.filter"><code>PathConfigProcessor</code></a> to accept per-chain configuration.
If it is not, a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalArgumentException</code></a> will be thrown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#addToChain(java.lang.String,java.lang.String,java.lang.String)">addToChain</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>chainName</code> - the name of the chain where the filter will be appended.</dd>
<dd><code>filterName</code> - the name of the <a href="FilterChainManager.html#addFilter(java.lang.String,javax.servlet.Filter)"><code>registered</code></a> filter to add to the chain.</dd>
<dd><code>chainSpecificFilterConfig</code> - the filter-specific configuration that should be applied for only the specified
filter chain.</dd>
</dl>
</li>
</ul>
<a id="setGlobalFilters(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setGlobalFilters</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.296">setGlobalFilters</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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>&gt;&nbsp;globalFilterNames)
throws org.apache.shiro.config.ConfigurationException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#setGlobalFilters(java.util.List)">FilterChainManager</a></code></span></div>
<div class="block">Configures the set of named filters that will match all paths. These filters will match BEFORE explicitly
configured filter chains i.e. by calling <a href="FilterChainManager.html#createChain(java.lang.String,java.lang.String)"><code>FilterChainManager.createChain(String, String)</code></a>, <a href="FilterChainManager.html#addToChain(java.lang.String,java.lang.String)"><code>FilterChainManager.addToChain(String, String)</code></a>, etc.
<br>
<strong>Filters configured in this list wll apply to ALL requests.</strong></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#setGlobalFilters(java.util.List)">setGlobalFilters</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>globalFilterNames</code> - the list of filter names to match ALL paths.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.shiro.config.ConfigurationException</code> - if one of the filter names is invalid and cannot be loaded from the set of
configured filters <a href="FilterChainManager.html#getFilters()"><code>FilterChainManager.getFilters()</code></a>}.</dd>
</dl>
</li>
</ul>
<a id="applyChainConfig(java.lang.String,javax.servlet.Filter,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyChainConfig</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.311">applyChainConfig</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;chainName,
<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>&nbsp;filter,
<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;chainSpecificFilterConfig)</pre>
</li>
</ul>
<a id="ensureChain(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ensureChain</h4>
<pre class="methodSignature">protected&nbsp;<a href="NamedFilterList.html" title="interface in org.apache.shiro.web.filter.mgt">NamedFilterList</a>&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.331">ensureChain</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;chainName)</pre>
</li>
</ul>
<a id="getChain(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChain</h4>
<pre class="methodSignature">public&nbsp;<a href="NamedFilterList.html" title="interface in org.apache.shiro.web.filter.mgt">NamedFilterList</a>&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.340">getChain</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;chainName)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#getChain(java.lang.String)">FilterChainManager</a></code></span></div>
<div class="block">Returns the filter chain identified by the specified <code>chainName</code> or <code>null</code> if there is no chain with
that name.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#getChain(java.lang.String)">getChain</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>chainName</code> - the name identifying the filter chain.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the filter chain identified by the specified <code>chainName</code> or <code>null</code> if there is no chain with
that name.</dd>
</dl>
</li>
</ul>
<a id="hasChains()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasChains</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.344">hasChains</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#hasChains()">FilterChainManager</a></code></span></div>
<div class="block">Returns <code>true</code> if one or more configured chains are available, <code>false</code> if none are configured.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#hasChains()">hasChains</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if one or more configured chains are available, <code>false</code> if none are configured.</dd>
</dl>
</li>
</ul>
<a id="getChainNames()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChainNames</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</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>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.348">getChainNames</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#getChainNames()">FilterChainManager</a></code></span></div>
<div class="block">Returns the names of all configured chains or an empty <code>Set</code> if no chains have been configured.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#getChainNames()">getChainNames</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the names of all configured chains or an empty <code>Set</code> if no chains have been configured.</dd>
</dl>
</li>
</ul>
<a id="proxy(javax.servlet.FilterChain,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>proxy</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterChain</a>&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.353">proxy</a>&#8203;(<a href="https://docs.oracle.com/javaee/5/api/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterChain</a>&nbsp;original,
<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;chainName)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="FilterChainManager.html#proxy(javax.servlet.FilterChain,java.lang.String)">FilterChainManager</a></code></span></div>
<div class="block">Proxies the specified <code>original</code> FilterChain with the named chain. The returned
<code>FilterChain</code> instance will first execute the configured named chain and then lastly invoke the given
<code>original</code> chain.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="FilterChainManager.html#proxy(javax.servlet.FilterChain,java.lang.String)">proxy</a></code>&nbsp;in interface&nbsp;<code><a href="FilterChainManager.html" title="interface in org.apache.shiro.web.filter.mgt">FilterChainManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>original</code> - the original FilterChain to proxy</dd>
<dd><code>chainName</code> - the name of the internal configured filter chain that should 'sit in front' of the specified
original chain.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>FilterChain</code> instance that will execute the named chain and then finally the
specified <code>original</code> FilterChain instance.</dd>
</dl>
</li>
</ul>
<a id="initFilter(javax.servlet.Filter)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initFilter</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.367">initFilter</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>&nbsp;filter)</pre>
<div class="block">Initializes the filter by calling <code>filter.init( <a href="#getFilterConfig()"><code>getFilterConfig()</code></a> );</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filter</code> - the filter to initialize with the <code>FilterConfig</code>.</dd>
</dl>
</li>
</ul>
<a id="addDefaultFilters(boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>addDefaultFilters</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.html#line.380">addDefaultFilters</a>&#8203;(boolean&nbsp;init)</pre>
</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/DefaultFilterChainManager.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>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 id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>