blob: d72685af22c792f8f4676bbf40cfdc3134b2b4fb [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Authenticator (Apache Shiro 1.10.0 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="Authenticator (Apache Shiro 1.10.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/Authenticator.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>Constr&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>Constr&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.authc</a></div>
<h2 title="Interface Authenticator" class="title">Interface Authenticator</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="../mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</a></code>, <code><a href="../web/mgt/WebSecurityManager.html" title="interface in org.apache.shiro.web.mgt">WebSecurityManager</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="AbstractAuthenticator.html" title="class in org.apache.shiro.authc">AbstractAuthenticator</a></code>, <code><a href="../mgt/AuthenticatingSecurityManager.html" title="class in org.apache.shiro.mgt">AuthenticatingSecurityManager</a></code>, <code><a href="../mgt/AuthorizingSecurityManager.html" title="class in org.apache.shiro.mgt">AuthorizingSecurityManager</a></code>, <code><a href="../mgt/CachingSecurityManager.html" title="class in org.apache.shiro.mgt">CachingSecurityManager</a></code>, <code><a href="../mgt/DefaultSecurityManager.html" title="class in org.apache.shiro.mgt">DefaultSecurityManager</a></code>, <code><a href="../web/mgt/DefaultWebSecurityManager.html" title="class in org.apache.shiro.web.mgt">DefaultWebSecurityManager</a></code>, <code><a href="pam/ModularRealmAuthenticator.html" title="class in org.apache.shiro.authc.pam">ModularRealmAuthenticator</a></code>, <code><a href="../mgt/RealmSecurityManager.html" title="class in org.apache.shiro.mgt">RealmSecurityManager</a></code>, <code><a href="../mgt/SessionsSecurityManager.html" title="class in org.apache.shiro.mgt">SessionsSecurityManager</a></code></dd>
</dl>
<hr>
<pre>public interface <a href="../../../../src-html/org/apache/shiro/authc/Authenticator.html#line.39">Authenticator</a></pre>
<div class="block">An Authenticator is responsible for authenticating accounts in an application. It
is one of the primary entry points into the Shiro API.
<p/>
Although not a requirement, there is usually a single 'master' Authenticator configured for
an application. Enabling Pluggable Authentication Module (PAM) behavior
(Two Phase Commit, etc.) is usually achieved by the single <code>Authenticator</code> coordinating
and interacting with an application-configured set of <a href="../realm/Realm.html" title="interface in org.apache.shiro.realm"><code>Realm</code></a>s.
<p/>
Note that most Shiro users will not interact with an <code>Authenticator</code> instance directly.
Shiro's default architecture is based on an overall <code>SecurityManager</code> which typically
wraps an <code>Authenticator</code> instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt"><code>SecurityManager</code></a>,
<a href="AbstractAuthenticator.html" title="class in org.apache.shiro.authc"><code>AbstractAuthenticator</code></a>,
<a href="pam/ModularRealmAuthenticator.html" title="class in org.apache.shiro.authc.pam"><code>ModularRealmAuthenticator</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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><a href="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="AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;authenticationToken)</code></th>
<td class="colLast">
<div class="block">Authenticates a user based on the submitted <code>AuthenticationToken</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="authenticate(org.apache.shiro.authc.AuthenticationToken)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>authenticate</h4>
<pre class="methodSignature"><a href="AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/authc/Authenticator.html#line.65">authenticate</a>&#8203;(<a href="AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;authenticationToken)
throws <a href="AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</a></pre>
<div class="block">Authenticates a user based on the submitted <code>AuthenticationToken</code>.
<p/>
If the authentication is successful, an <a href="AuthenticationInfo.html" title="interface in org.apache.shiro.authc"><code>AuthenticationInfo</code></a> instance is returned that represents the
user's account data relevant to Shiro. This returned object is generally used in turn to construct a
<code>Subject</code> representing a more complete security-specific 'view' of an account that also allows access to
a <code>Session</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>authenticationToken</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="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="ExpiredCredentialsException.html" title="class in org.apache.shiro.authc"><code>ExpiredCredentialsException</code></a>,
<a href="IncorrectCredentialsException.html" title="class in org.apache.shiro.authc"><code>IncorrectCredentialsException</code></a>,
<a href="ExcessiveAttemptsException.html" title="class in org.apache.shiro.authc"><code>ExcessiveAttemptsException</code></a>,
<a href="LockedAccountException.html" title="class in org.apache.shiro.authc"><code>LockedAccountException</code></a>,
<a href="ConcurrentAccessException.html" title="class in org.apache.shiro.authc"><code>ConcurrentAccessException</code></a>,
<a href="UnknownAccountException.html" title="class in org.apache.shiro.authc"><code>UnknownAccountException</code></a></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/Authenticator.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>Constr&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>Constr&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>