blob: 1ff940c70895ef48380e916d8b0de785e15e992c [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>AuthenticatingSecurityManager (Apache Shiro :: Core 1.9.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.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.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AuthenticatingSecurityManager (Apache Shiro :: Core 1.9.1 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":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/AuthenticatingSecurityManager.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.mgt</a></div>
<h2 title="Class AuthenticatingSecurityManager" class="title">Class AuthenticatingSecurityManager</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><a href="CachingSecurityManager.html" title="class in org.apache.shiro.mgt">org.apache.shiro.mgt.CachingSecurityManager</a></li>
<li>
<ul class="inheritance">
<li><a href="RealmSecurityManager.html" title="class in org.apache.shiro.mgt">org.apache.shiro.mgt.RealmSecurityManager</a></li>
<li>
<ul class="inheritance">
<li>org.apache.shiro.mgt.AuthenticatingSecurityManager</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../authc/Authenticator.html" title="interface in org.apache.shiro.authc">Authenticator</a></code>, <code><a href="../authz/Authorizer.html" title="interface in org.apache.shiro.authz">Authorizer</a></code>, <code>org.apache.shiro.cache.CacheManagerAware</code>, <code>org.apache.shiro.event.EventBusAware</code>, <code><a href="SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</a></code>, <code><a href="../session/mgt/SessionManager.html" title="interface in org.apache.shiro.session.mgt">SessionManager</a></code>, <code>org.apache.shiro.util.Destroyable</code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="AuthorizingSecurityManager.html" title="class in org.apache.shiro.mgt">AuthorizingSecurityManager</a></code></dd>
</dl>
<hr>
<pre>public abstract class <a href="../../../../src-html/org/apache/shiro/mgt/AuthenticatingSecurityManager.html#line.43">AuthenticatingSecurityManager</a>
extends <a href="RealmSecurityManager.html" title="class in org.apache.shiro.mgt">RealmSecurityManager</a></pre>
<div class="block">Shiro support of a <a href="SecurityManager.html" title="interface in org.apache.shiro.mgt"><code>SecurityManager</code></a> class hierarchy that delegates all
authentication operations to a wrapped <a href="../authc/Authenticator.html" title="interface in org.apache.shiro.authc"><code>Authenticator</code></a> instance. That is, this class
implements all the <tt>Authenticator</tt> methods in the <a href="SecurityManager.html" title="interface in org.apache.shiro.mgt"><code>SecurityManager</code></a>
interface, but in reality, those methods are merely passthrough calls to the underlying 'real'
<tt>Authenticator</tt> instance.
<p>All other <tt>SecurityManager</tt> (authorization, session, etc) methods are left to be implemented by subclasses.
<p>In keeping with the other classes in this hierarchy and Shiro's desire to minimize configuration whenever
possible, suitable default instances for all dependencies are created upon instantiation.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.9</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">AuthenticatingSecurityManager</a></span>()</code></th>
<td class="colLast">
<div class="block">Default no-arg constructor that initializes its internal
<code>authenticator</code> instance to a
<a href="../authc/pam/ModularRealmAuthenticator.html" title="class in org.apache.shiro.authc.pam"><code>ModularRealmAuthenticator</code></a>.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#afterRealmsSet()">afterRealmsSet</a></span>()</code></th>
<td class="colLast">
<div class="block">Passes on the <a href="RealmSecurityManager.html#getRealms()"><code>realms</code></a> to the internal delegate <code>Authenticator</code> instance so
that it may use them during authentication attempts.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#authenticate(org.apache.shiro.authc.AuthenticationToken)">authenticate</a></span>&#8203;(<a href="../authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token)</code></th>
<td class="colLast">
<div class="block">Delegates to the wrapped <a href="../authc/Authenticator.html" title="interface in org.apache.shiro.authc"><code>Authenticator</code></a> for authentication.</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="#destroy()">destroy</a></span>()</code></th>
<td class="colLast">
<div class="block">Destroys the <a href="CachingSecurityManager.html#getCacheManager()"><code>cacheManager</code></a> via <code>LifecycleUtils.destroy</code>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../authc/Authenticator.html" title="interface in org.apache.shiro.authc">Authenticator</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAuthenticator()">getAuthenticator</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the delegate <code>Authenticator</code> instance that this SecurityManager uses to perform all
authentication operations.</div>
</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="#setAuthenticator(org.apache.shiro.authc.Authenticator)">setAuthenticator</a></span>&#8203;(<a href="../authc/Authenticator.html" title="interface in org.apache.shiro.authc">Authenticator</a>&nbsp;authenticator)</code></th>
<td class="colLast">
<div class="block">Sets the delegate <code>Authenticator</code> instance that this SecurityManager uses to perform all
authentication operations.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.shiro.mgt.RealmSecurityManager">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.shiro.mgt.<a href="RealmSecurityManager.html" title="class in org.apache.shiro.mgt">RealmSecurityManager</a></h3>
<code><a href="RealmSecurityManager.html#afterCacheManagerSet()">afterCacheManagerSet</a>, <a href="RealmSecurityManager.html#afterEventBusSet()">afterEventBusSet</a>, <a href="RealmSecurityManager.html#applyCacheManagerToRealms()">applyCacheManagerToRealms</a>, <a href="RealmSecurityManager.html#applyEventBusToRealms()">applyEventBusToRealms</a>, <a href="RealmSecurityManager.html#getRealms()">getRealms</a>, <a href="RealmSecurityManager.html#setRealm(org.apache.shiro.realm.Realm)">setRealm</a>, <a href="RealmSecurityManager.html#setRealms(java.util.Collection)">setRealms</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.shiro.mgt.CachingSecurityManager">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.shiro.mgt.<a href="CachingSecurityManager.html" title="class in org.apache.shiro.mgt">CachingSecurityManager</a></h3>
<code><a href="CachingSecurityManager.html#applyEventBusToCacheManager()">applyEventBusToCacheManager</a>, <a href="CachingSecurityManager.html#getCacheManager()">getCacheManager</a>, <a href="CachingSecurityManager.html#getEventBus()">getEventBus</a>, <a href="CachingSecurityManager.html#setCacheManager(org.apache.shiro.cache.CacheManager)">setCacheManager</a>, <a href="CachingSecurityManager.html#setEventBus(org.apache.shiro.event.EventBus)">setEventBus</a></code></li>
</ul>
<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>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.shiro.authz.Authorizer">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.shiro.authz.<a href="../authz/Authorizer.html" title="interface in org.apache.shiro.authz">Authorizer</a></h3>
<code><a href="../authz/Authorizer.html#checkPermission(org.apache.shiro.subject.PrincipalCollection,java.lang.String)">checkPermission</a>, <a href="../authz/Authorizer.html#checkPermission(org.apache.shiro.subject.PrincipalCollection,org.apache.shiro.authz.Permission)">checkPermission</a>, <a href="../authz/Authorizer.html#checkPermissions(org.apache.shiro.subject.PrincipalCollection,java.lang.String...)">checkPermissions</a>, <a href="../authz/Authorizer.html#checkPermissions(org.apache.shiro.subject.PrincipalCollection,java.util.Collection)">checkPermissions</a>, <a href="../authz/Authorizer.html#checkRole(org.apache.shiro.subject.PrincipalCollection,java.lang.String)">checkRole</a>, <a href="../authz/Authorizer.html#checkRoles(org.apache.shiro.subject.PrincipalCollection,java.lang.String...)">checkRoles</a>, <a href="../authz/Authorizer.html#checkRoles(org.apache.shiro.subject.PrincipalCollection,java.util.Collection)">checkRoles</a>, <a href="../authz/Authorizer.html#hasAllRoles(org.apache.shiro.subject.PrincipalCollection,java.util.Collection)">hasAllRoles</a>, <a href="../authz/Authorizer.html#hasRole(org.apache.shiro.subject.PrincipalCollection,java.lang.String)">hasRole</a>, <a href="../authz/Authorizer.html#hasRoles(org.apache.shiro.subject.PrincipalCollection,java.util.List)">hasRoles</a>, <a href="../authz/Authorizer.html#isPermitted(org.apache.shiro.subject.PrincipalCollection,java.lang.String)">isPermitted</a>, <a href="../authz/Authorizer.html#isPermitted(org.apache.shiro.subject.PrincipalCollection,java.lang.String...)">isPermitted</a>, <a href="../authz/Authorizer.html#isPermitted(org.apache.shiro.subject.PrincipalCollection,java.util.List)">isPermitted</a>, <a href="../authz/Authorizer.html#isPermitted(org.apache.shiro.subject.PrincipalCollection,org.apache.shiro.authz.Permission)">isPermitted</a>, <a href="../authz/Authorizer.html#isPermittedAll(org.apache.shiro.subject.PrincipalCollection,java.lang.String...)">isPermittedAll</a>, <a href="../authz/Authorizer.html#isPermittedAll(org.apache.shiro.subject.PrincipalCollection,java.util.Collection)">isPermittedAll</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.shiro.mgt.SecurityManager">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.shiro.mgt.<a href="SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</a></h3>
<code><a href="SecurityManager.html#createSubject(org.apache.shiro.subject.SubjectContext)">createSubject</a>, <a href="SecurityManager.html#login(org.apache.shiro.subject.Subject,org.apache.shiro.authc.AuthenticationToken)">login</a>, <a href="SecurityManager.html#logout(org.apache.shiro.subject.Subject)">logout</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.shiro.session.mgt.SessionManager">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.shiro.session.mgt.<a href="../session/mgt/SessionManager.html" title="interface in org.apache.shiro.session.mgt">SessionManager</a></h3>
<code><a href="../session/mgt/SessionManager.html#getSession(org.apache.shiro.session.mgt.SessionKey)">getSession</a>, <a href="../session/mgt/SessionManager.html#start(org.apache.shiro.session.mgt.SessionContext)">start</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AuthenticatingSecurityManager</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/apache/shiro/mgt/AuthenticatingSecurityManager.html#line.56">AuthenticatingSecurityManager</a>()</pre>
<div class="block">Default no-arg constructor that initializes its internal
<code>authenticator</code> instance to a
<a href="../authc/pam/ModularRealmAuthenticator.html" title="class in org.apache.shiro.authc.pam"><code>ModularRealmAuthenticator</code></a>.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getAuthenticator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAuthenticator</h4>
<pre class="methodSignature">public&nbsp;<a href="../authc/Authenticator.html" title="interface in org.apache.shiro.authc">Authenticator</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/mgt/AuthenticatingSecurityManager.html#line.70">getAuthenticator</a>()</pre>
<div class="block">Returns the delegate <code>Authenticator</code> instance that this SecurityManager uses to perform all
authentication operations. Unless overridden by the
<a href="#setAuthenticator(org.apache.shiro.authc.Authenticator)"><code>setAuthenticator</code></a>, the default instance is a
<a href="../authc/pam/ModularRealmAuthenticator.html" title="class in org.apache.shiro.authc.pam"><code>ModularRealmAuthenticator</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the delegate <code>Authenticator</code> instance that this SecurityManager uses to perform all
authentication operations.</dd>
</dl>
</li>
</ul>
<a id="setAuthenticator(org.apache.shiro.authc.Authenticator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAuthenticator</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/mgt/AuthenticatingSecurityManager.html#line.83">setAuthenticator</a>&#8203;(<a href="../authc/Authenticator.html" title="interface in org.apache.shiro.authc">Authenticator</a>&nbsp;authenticator)
throws <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">IllegalArgumentException</a></pre>
<div class="block">Sets the delegate <code>Authenticator</code> instance that this SecurityManager uses to perform all
authentication operations. Unless overridden by this method, the default instance is a
<a href="../authc/pam/ModularRealmAuthenticator.html" title="class in org.apache.shiro.authc.pam"><code>ModularRealmAuthenticator</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>authenticator</code> - the delegate <code>Authenticator</code> instance that this SecurityManager will use to
perform all authentication operations.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><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">IllegalArgumentException</a></code> - if the argument is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a id="afterRealmsSet()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>afterRealmsSet</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/mgt/AuthenticatingSecurityManager.html#line.95">afterRealmsSet</a>()</pre>
<div class="block">Passes on the <a href="RealmSecurityManager.html#getRealms()"><code>realms</code></a> to the internal delegate <code>Authenticator</code> instance so
that it may use them during authentication attempts.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="RealmSecurityManager.html#afterRealmsSet()">afterRealmsSet</a></code>&nbsp;in class&nbsp;<code><a href="RealmSecurityManager.html" title="class in org.apache.shiro.mgt">RealmSecurityManager</a></code></dd>
</dl>
</li>
</ul>
<a id="authenticate(org.apache.shiro.authc.AuthenticationToken)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>authenticate</h4>
<pre class="methodSignature">public&nbsp;<a href="../authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/mgt/AuthenticatingSecurityManager.html#line.105">authenticate</a>&#8203;(<a href="../authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token)
throws <a href="../authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</a></pre>
<div class="block">Delegates to the wrapped <a href="../authc/Authenticator.html" title="interface in org.apache.shiro.authc"><code>Authenticator</code></a> for authentication.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>token</code> - any representation of a user's principals and credentials submitted during an
authentication attempt.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the AuthenticationInfo representing the authenticating user's account data.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</a></code> - if there is any problem during the authentication process.
See the specific exceptions listed below to as examples of what could happen
in order to accurately handle these problems and to notify the user in an
appropriate manner why the authentication attempt failed. Realize an
implementation of this interface may or may not throw those listed or may
throw other AuthenticationExceptions, but the list shows the most common ones.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../authc/ExpiredCredentialsException.html" title="class in org.apache.shiro.authc"><code>ExpiredCredentialsException</code></a>,
<a href="../authc/IncorrectCredentialsException.html" title="class in org.apache.shiro.authc"><code>IncorrectCredentialsException</code></a>,
<a href="../authc/ExcessiveAttemptsException.html" title="class in org.apache.shiro.authc"><code>ExcessiveAttemptsException</code></a>,
<a href="../authc/LockedAccountException.html" title="class in org.apache.shiro.authc"><code>LockedAccountException</code></a>,
<a href="../authc/ConcurrentAccessException.html" title="class in org.apache.shiro.authc"><code>ConcurrentAccessException</code></a>,
<a href="../authc/UnknownAccountException.html" title="class in org.apache.shiro.authc"><code>UnknownAccountException</code></a></dd>
</dl>
</li>
</ul>
<a id="destroy()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>destroy</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/mgt/AuthenticatingSecurityManager.html#line.109">destroy</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="CachingSecurityManager.html#destroy()">CachingSecurityManager</a></code></span></div>
<div class="block">Destroys the <a href="CachingSecurityManager.html#getCacheManager()"><code>cacheManager</code></a> via <code>LifecycleUtils.destroy</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>destroy</code>&nbsp;in interface&nbsp;<code>org.apache.shiro.util.Destroyable</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="RealmSecurityManager.html#destroy()">destroy</a></code>&nbsp;in class&nbsp;<code><a href="RealmSecurityManager.html" title="class in org.apache.shiro.mgt">RealmSecurityManager</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AuthenticatingSecurityManager.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>