blob: cd5c7d60367f2dff044ef2ea32fbf605ce0203e8 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="fr">
<head>
<!-- Generated by javadoc (1.8.0_77) on Sun May 14 11:51:26 CEST 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AuthenticationStrategy (Apache Shiro 1.4.0 API)</title>
<meta name="date" content="2017-05-14">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AuthenticationStrategy (Apache Shiro 1.4.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":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";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AuthenticationStrategy.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/shiro/authc/pam/AtLeastOneSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/shiro/authc/pam/FirstSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/shiro/authc/pam/AuthenticationStrategy.html" target="_top">Frames</a></li>
<li><a href="AuthenticationStrategy.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.shiro.authc.pam</div>
<h2 title="Interface AuthenticationStrategy" class="title">Interface AuthenticationStrategy</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../org/apache/shiro/authc/pam/AbstractAuthenticationStrategy.html" title="class in org.apache.shiro.authc.pam">AbstractAuthenticationStrategy</a>, <a href="../../../../../org/apache/shiro/authc/pam/AllSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam">AllSuccessfulStrategy</a>, <a href="../../../../../org/apache/shiro/authc/pam/AtLeastOneSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam">AtLeastOneSuccessfulStrategy</a>, <a href="../../../../../org/apache/shiro/authc/pam/FirstSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam">FirstSuccessfulStrategy</a></dd>
</dl>
<hr>
<br>
<pre>public interface <a href="../../../../../src-html/org/apache/shiro/authc/pam/AuthenticationStrategy.html#line.42">AuthenticationStrategy</a></pre>
<div class="block">A <code>AuthenticationStrategy</code> implementation assists the <a href="../../../../../org/apache/shiro/authc/pam/ModularRealmAuthenticator.html" title="class in org.apache.shiro.authc.pam"><code>ModularRealmAuthenticator</code></a> during the
log-in process in a pluggable realm (PAM) environment.
<p>The <code>ModularRealmAuthenticator</code> will consult implementations of this interface on what to do during each
interaction with the configured Realms. This allows a pluggable strategy of whether or not an authentication
attempt must be successful for all realms, only 1 or more realms, no realms, etc.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.2</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/shiro/authc/pam/AllSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam"><code>AllSuccessfulStrategy</code></a>,
<a href="../../../../../org/apache/shiro/authc/pam/AtLeastOneSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam"><code>AtLeastOneSuccessfulStrategy</code></a>,
<a href="../../../../../org/apache/shiro/authc/pam/FirstSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam"><code>FirstSuccessfulStrategy</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/authc/pam/AuthenticationStrategy.html#afterAllAttempts-org.apache.shiro.authc.AuthenticationToken-org.apache.shiro.authc.AuthenticationInfo-">afterAllAttempts</a></span>(<a href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token,
<a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;aggregate)</code>
<div class="block">Method invoked by the ModularAuthenticator signifying that all of its configured Realms have been consulted
for account data, allowing post-processing after all realms have completed.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/authc/pam/AuthenticationStrategy.html#afterAttempt-org.apache.shiro.realm.Realm-org.apache.shiro.authc.AuthenticationToken-org.apache.shiro.authc.AuthenticationInfo-org.apache.shiro.authc.AuthenticationInfo-java.lang.Throwable-">afterAttempt</a></span>(<a href="../../../../../org/apache/shiro/realm/Realm.html" title="interface in org.apache.shiro.realm">Realm</a>&nbsp;realm,
<a href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token,
<a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;singleRealmInfo,
<a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;aggregateInfo,
<a href="http://java.sun.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</code>
<div class="block">Method invoked by the ModularAuthenticator just after the given realm has been consulted for authentication,
allowing post-authentication-attempt logic for that realm only.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/authc/pam/AuthenticationStrategy.html#beforeAllAttempts-java.util.Collection-org.apache.shiro.authc.AuthenticationToken-">beforeAllAttempts</a></span>(<a href="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../../org/apache/shiro/realm/Realm.html" title="interface in org.apache.shiro.realm">Realm</a>&gt;&nbsp;realms,
<a href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token)</code>
<div class="block">Method invoked by the ModularAuthenticator signifying that the authentication process is about to begin for the
specified <code>token</code> - called before any <code>Realm</code> is actually invoked.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/shiro/authc/pam/AuthenticationStrategy.html#beforeAttempt-org.apache.shiro.realm.Realm-org.apache.shiro.authc.AuthenticationToken-org.apache.shiro.authc.AuthenticationInfo-">beforeAttempt</a></span>(<a href="../../../../../org/apache/shiro/realm/Realm.html" title="interface in org.apache.shiro.realm">Realm</a>&nbsp;realm,
<a href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token,
<a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;aggregate)</code>
<div class="block">Method invoked by the ModularAuthenticator just prior to the realm being consulted for account data,
allowing pre-authentication-attempt logic for that realm only.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="beforeAllAttempts-java.util.Collection-org.apache.shiro.authc.AuthenticationToken-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beforeAllAttempts</h4>
<pre><a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/authc/pam/AuthenticationStrategy.html#line.59">beforeAllAttempts</a>(<a href="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../../org/apache/shiro/realm/Realm.html" title="interface in org.apache.shiro.realm">Realm</a>&gt;&nbsp;realms,
<a href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token)
throws <a href="../../../../../org/apache/shiro/authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</a></pre>
<div class="block">Method invoked by the ModularAuthenticator signifying that the authentication process is about to begin for the
specified <code>token</code> - called before any <code>Realm</code> is actually invoked.
<p>The <code>AuthenticationInfo</code> object returned from this method is essentially an empty place holder for
aggregating account data across multiple realms. It should be populated by the strategy implementation over the
course of authentication attempts across the multiple realms. It will be passed into the
<a href="../../../../../org/apache/shiro/authc/pam/AuthenticationStrategy.html#beforeAttempt-org.apache.shiro.realm.Realm-org.apache.shiro.authc.AuthenticationToken-org.apache.shiro.authc.AuthenticationInfo-"><code>beforeAttempt(org.apache.shiro.realm.Realm, org.apache.shiro.authc.AuthenticationToken, org.apache.shiro.authc.AuthenticationInfo)</code></a> calls, allowing inspection of the aggregated account data up to that point in the
multi-realm authentication, allowing any logic to be executed accordingly.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>realms</code> - the Realms that will be consulted during the authentication process for the specified token.</dd>
<dd><code>token</code> - the Principal/Credential representation to be used during authentication for a corresponding subject.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an empty AuthenticationInfo object that will populated with data from multiple realms.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/shiro/authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</a></code> - if the strategy implementation does not wish the Authentication attempt to execute.</dd>
</dl>
</li>
</ul>
<a name="beforeAttempt-org.apache.shiro.realm.Realm-org.apache.shiro.authc.AuthenticationToken-org.apache.shiro.authc.AuthenticationInfo-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beforeAttempt</h4>
<pre><a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/authc/pam/AuthenticationStrategy.html#line.78">beforeAttempt</a>(<a href="../../../../../org/apache/shiro/realm/Realm.html" title="interface in org.apache.shiro.realm">Realm</a>&nbsp;realm,
<a href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token,
<a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;aggregate)
throws <a href="../../../../../org/apache/shiro/authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</a></pre>
<div class="block">Method invoked by the ModularAuthenticator just prior to the realm being consulted for account data,
allowing pre-authentication-attempt logic for that realm only.
<p>This method returns an <code>AuthenticationInfo</code> object that will be used for further interaction with realms. Most
implementations will merely return the <code>aggregate</code> method argument if they don't have a need to
manipulate it.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>realm</code> - the realm that will be consulted for <code>AuthenticationInfo</code> for the specified <code>token</code>.</dd>
<dd><code>token</code> - the <code>AuthenticationToken</code> submitted for the subject attempting system log-in.</dd>
<dd><code>aggregate</code> - the aggregated AuthenticationInfo object being used across the multi-realm authentication attempt</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the AuthenticationInfo object that will be presented to further realms in the authentication process - returning
the <code>aggregate</code> method argument is the normal case if no special action needs to be taken.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/shiro/authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</a></code> - an exception thrown by the Strategy implementation if it wishes the login
process for the associated subject (user) to stop immediately.</dd>
</dl>
</li>
</ul>
<a name="afterAttempt-org.apache.shiro.realm.Realm-org.apache.shiro.authc.AuthenticationToken-org.apache.shiro.authc.AuthenticationInfo-org.apache.shiro.authc.AuthenticationInfo-java.lang.Throwable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>afterAttempt</h4>
<pre><a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/authc/pam/AuthenticationStrategy.html#line.98">afterAttempt</a>(<a href="../../../../../org/apache/shiro/realm/Realm.html" title="interface in org.apache.shiro.realm">Realm</a>&nbsp;realm,
<a href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token,
<a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;singleRealmInfo,
<a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;aggregateInfo,
<a href="http://java.sun.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)
throws <a href="../../../../../org/apache/shiro/authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</a></pre>
<div class="block">Method invoked by the ModularAuthenticator just after the given realm has been consulted for authentication,
allowing post-authentication-attempt logic for that realm only.
<p>This method returns an <code>AuthenticationInfo</code> object that will be used for further interaction with realms. Most
implementations will merge the <code>singleRealmInfo</code> into the <code>aggregateInfo</code> and
just return the <code>aggregateInfo</code> for continued use throughout the authentication process.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>realm</code> - the realm that was just consulted for <code>AuthenticationInfo</code> for the given <code>token</code>.</dd>
<dd><code>token</code> - the <code>AuthenticationToken</code> submitted for the subject attempting system log-in.</dd>
<dd><code>singleRealmInfo</code> - the info returned from a single realm.</dd>
<dd><code>aggregateInfo</code> - the aggregate info representing all realms in a multi-realm environment.</dd>
<dd><code>t</code> - the Throwable thrown by the Realm during the attempt, or <code>null</code> if the method returned normally.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the AuthenticationInfo object that will be presented to further realms in the authentication process - returning
the <code>aggregateAccount</code> method argument is the normal case if no special action needs to be taken.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/shiro/authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</a></code> - an exception thrown by the Strategy implementation if it wishes the login process
for the associated subject (user) to stop immediately.</dd>
</dl>
</li>
</ul>
<a name="afterAllAttempts-org.apache.shiro.authc.AuthenticationToken-org.apache.shiro.authc.AuthenticationInfo-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>afterAllAttempts</h4>
<pre><a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/authc/pam/AuthenticationStrategy.html#line.114">afterAllAttempts</a>(<a href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token,
<a href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;aggregate)
throws <a href="../../../../../org/apache/shiro/authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</a></pre>
<div class="block">Method invoked by the ModularAuthenticator signifying that all of its configured Realms have been consulted
for account data, allowing post-processing after all realms have completed.
<p>Returns the final AuthenticationInfo object that will be returned from the Authenticator to the authenticate() caller.
This is most likely the aggregate AuthenticationInfo object that has been populated by many realms, but the actual return value is
always up to the implementation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>token</code> - the <code>AuthenticationToken</code> submitted for the subject attempting system log-in.</dd>
<dd><code>aggregate</code> - the aggregate <code>AuthenticationInfo</code> instance populated by all realms during the log-in attempt.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the final <code>AuthenticationInfo</code> object to return to the Authenticator.authenticate() caller.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/shiro/authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</a></code> - if the Strategy implementation wishes to fail the authentication attempt.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AuthenticationStrategy.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/shiro/authc/pam/AtLeastOneSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/shiro/authc/pam/FirstSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/shiro/authc/pam/AuthenticationStrategy.html" target="_top">Frames</a></li>
<li><a href="AuthenticationStrategy.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>