blob: 4885758d36a9c4dc1281f38584b84ab74c539fe1 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_65) on Fri Mar 04 17:58:54 EST 2016 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
AuthenticationStrategy (Apache Shiro 1.2.4 API)
</TITLE>
<META NAME="date" CONTENT="2016-03-04">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AuthenticationStrategy (Apache Shiro 1.2.4 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AuthenticationStrategy.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/shiro/authc/pam/AtLeastOneSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/shiro/authc/pam/FirstSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/shiro/authc/pam/AuthenticationStrategy.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AuthenticationStrategy.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.shiro.authc.pam</FONT>
<BR>
Interface AuthenticationStrategy</H2>
<DL>
<DT><B>All Known Implementing Classes:</B> <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>
<DL>
<DT><PRE>public interface <A HREF="../../../../../src-html/org/apache/shiro/authc/pam/AuthenticationStrategy.html#line.42"><B>AuthenticationStrategy</B></A></DL>
</PRE>
<P>
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.
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>0.2</DD>
<DT><B>See Also:</B><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></DL>
<HR>
<P>
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/authc/pam/AuthenticationStrategy.html#afterAllAttempts(org.apache.shiro.authc.AuthenticationToken, org.apache.shiro.authc.AuthenticationInfo)">afterAllAttempts</A></B>(<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>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method invoked by the ModularAuthenticator signifying that all of its configured Realms have been consulted
for account data, allowing post-proccessing after all realms have completed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</A></CODE></FONT></TD>
<TD><CODE><B><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></B>(<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>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method invoked by the ModularAuthenticator just after the given realm has been consulted for authentication,
allowing post-authentication-attempt logic for that realm only.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/authc/pam/AuthenticationStrategy.html#beforeAllAttempts(java.util.Collection, org.apache.shiro.authc.AuthenticationToken)">beforeAllAttempts</A></B>(<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>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</A></CODE></FONT></TD>
<TD><CODE><B><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></B>(<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>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method invoked by the ModularAuthenticator just prior to the realm being consulted for account data,
allowing pre-authentication-attempt logic for that realm only.</TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="beforeAllAttempts(java.util.Collection, org.apache.shiro.authc.AuthenticationToken)"><!-- --></A><H3>
beforeAllAttempts</H3>
<PRE>
<A HREF="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</A> <A HREF="../../../../../src-html/org/apache/shiro/authc/pam/AuthenticationStrategy.html#line.59"><B>beforeAllAttempts</B></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>
<DL>
<DD>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.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>realms</CODE> - the Realms that will be consulted during the authentication process for the specified token.<DD><CODE>token</CODE> - the Principal/Credential representation to be used during authentication for a corresponding subject.
<DT><B>Returns:</B><DD>an empty AuthenticationInfo object that will populated with data from multiple realms.
<DT><B>Throws:</B>
<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.</DL>
</DD>
</DL>
<HR>
<A NAME="beforeAttempt(org.apache.shiro.realm.Realm, org.apache.shiro.authc.AuthenticationToken, org.apache.shiro.authc.AuthenticationInfo)"><!-- --></A><H3>
beforeAttempt</H3>
<PRE>
<A HREF="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</A> <A HREF="../../../../../src-html/org/apache/shiro/authc/pam/AuthenticationStrategy.html#line.78"><B>beforeAttempt</B></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>
<DL>
<DD>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.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>realm</CODE> - the realm that will be consulted for <code>AuthenticationInfo</code> for the specified <code>token</code>.<DD><CODE>token</CODE> - the <code>AuthenticationToken</code> submitted for the subject attempting system log-in.<DD><CODE>aggregate</CODE> - the aggregated AuthenticationInfo object being used across the multi-realm authentication attempt
<DT><B>Returns:</B><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.
<DT><B>Throws:</B>
<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.</DL>
</DD>
</DL>
<HR>
<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><H3>
afterAttempt</H3>
<PRE>
<A HREF="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</A> <A HREF="../../../../../src-html/org/apache/shiro/authc/pam/AuthenticationStrategy.html#line.98"><B>afterAttempt</B></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>
<DL>
<DD>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>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>realm</CODE> - the realm that was just consulted for <code>AuthenticationInfo</code> for the given <code>token</code>.<DD><CODE>token</CODE> - the <code>AuthenticationToken</code> submitted for the subject attempting system log-in.<DD><CODE>singleRealmInfo</CODE> - the info returned from a single realm.<DD><CODE>aggregateInfo</CODE> - the aggregate info representing all realms in a multi-realm environment.<DD><CODE>t</CODE> - the Throwable thrown by the Realm during the attempt, or <code>null</code> if the method returned normally.
<DT><B>Returns:</B><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.
<DT><B>Throws:</B>
<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.</DL>
</DD>
</DL>
<HR>
<A NAME="afterAllAttempts(org.apache.shiro.authc.AuthenticationToken, org.apache.shiro.authc.AuthenticationInfo)"><!-- --></A><H3>
afterAllAttempts</H3>
<PRE>
<A HREF="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc">AuthenticationInfo</A> <A HREF="../../../../../src-html/org/apache/shiro/authc/pam/AuthenticationStrategy.html#line.114"><B>afterAllAttempts</B></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>
<DL>
<DD>Method invoked by the ModularAuthenticator signifying that all of its configured Realms have been consulted
for account data, allowing post-proccessing 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.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>token</CODE> - the <code>AuthenticationToken</code> submitted for the subject attempting system log-in.<DD><CODE>aggregate</CODE> - the aggregate <code>AuthenticationInfo</code> instance populated by all realms during the log-in attempt.
<DT><B>Returns:</B><DD>the final <code>AuthenticationInfo</code> object to return to the Authenticator.authenticate() caller.
<DT><B>Throws:</B>
<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.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AuthenticationStrategy.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/shiro/authc/pam/AtLeastOneSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/shiro/authc/pam/FirstSuccessfulStrategy.html" title="class in org.apache.shiro.authc.pam"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/shiro/authc/pam/AuthenticationStrategy.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AuthenticationStrategy.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2004-2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>