blob: fe850fcd7d4f0c1ad5e7ff16a95d3bd3caf7e863 [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:56 EST 2016 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
AbstractValidatingSessionManager (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="AbstractValidatingSessionManager (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/AbstractValidatingSessionManager.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/session/mgt/AbstractSessionManager.html" title="class in org.apache.shiro.session.mgt"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/shiro/session/mgt/DefaultSessionContext.html" title="class in org.apache.shiro.session.mgt"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AbstractValidatingSessionManager.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;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&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.session.mgt</FONT>
<BR>
Class AbstractValidatingSessionManager</H2>
<PRE>
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractSessionManager.html" title="class in org.apache.shiro.session.mgt">org.apache.shiro.session.mgt.AbstractSessionManager</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html" title="class in org.apache.shiro.session.mgt">org.apache.shiro.session.mgt.AbstractNativeSessionManager</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.shiro.session.mgt.AbstractValidatingSessionManager</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../org/apache/shiro/session/mgt/NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/SessionManager.html" title="interface in org.apache.shiro.session.mgt">SessionManager</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/ValidatingSessionManager.html" title="interface in org.apache.shiro.session.mgt">ValidatingSessionManager</A>, <A HREF="../../../../../org/apache/shiro/util/Destroyable.html" title="interface in org.apache.shiro.util">Destroyable</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/apache/shiro/session/mgt/DefaultSessionManager.html" title="class in org.apache.shiro.session.mgt">DefaultSessionManager</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.39"><B>AbstractValidatingSessionManager</B></A><DT>extends <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html" title="class in org.apache.shiro.session.mgt">AbstractNativeSessionManager</A><DT>implements <A HREF="../../../../../org/apache/shiro/session/mgt/ValidatingSessionManager.html" title="interface in org.apache.shiro.session.mgt">ValidatingSessionManager</A>, <A HREF="../../../../../org/apache/shiro/util/Destroyable.html" title="interface in org.apache.shiro.util">Destroyable</A></DL>
</PRE>
<P>
Default business-tier implementation of the <A HREF="../../../../../org/apache/shiro/session/mgt/ValidatingSessionManager.html" title="interface in org.apache.shiro.session.mgt"><CODE>ValidatingSessionManager</CODE></A> interface.
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>0.1</DD>
</DL>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_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>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#DEFAULT_SESSION_VALIDATION_INTERVAL">DEFAULT_SESSION_VALIDATION_INTERVAL</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default interval at which sessions will be validated (1 hour);
This can be overridden by calling <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#setSessionValidationInterval(long)"><CODE>setSessionValidationInterval(long)</CODE></A></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#sessionValidationInterval">sessionValidationInterval</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/shiro/session/mgt/SessionValidationScheduler.html" title="interface in org.apache.shiro.session.mgt">SessionValidationScheduler</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#sessionValidationScheduler">sessionValidationScheduler</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scheduler used to validate sessions on a regular basis.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#sessionValidationSchedulerEnabled">sessionValidationSchedulerEnabled</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.shiro.session.mgt.AbstractSessionManager"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.shiro.session.mgt.<A HREF="../../../../../org/apache/shiro/session/mgt/AbstractSessionManager.html" title="class in org.apache.shiro.session.mgt">AbstractSessionManager</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractSessionManager.html#DEFAULT_GLOBAL_SESSION_TIMEOUT">DEFAULT_GLOBAL_SESSION_TIMEOUT</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractSessionManager.html#MILLIS_PER_HOUR">MILLIS_PER_HOUR</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractSessionManager.html#MILLIS_PER_MINUTE">MILLIS_PER_MINUTE</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractSessionManager.html#MILLIS_PER_SECOND">MILLIS_PER_SECOND</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_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>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#AbstractValidatingSessionManager()">AbstractValidatingSessionManager</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== 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>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#afterExpired(org.apache.shiro.session.Session)">afterExpired</A></B>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#afterSessionValidationEnabled()">afterSessionValidationEnabled</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#beforeSessionValidationDisabled()">beforeSessionValidationDisabled</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#createSession(org.apache.shiro.session.mgt.SessionContext)">createSession</A></B>(<A HREF="../../../../../org/apache/shiro/session/mgt/SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</A>&nbsp;context)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new <code>Session Session</code> instance based on the specified (possibly <code>null</code>)
initialization data.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/shiro/session/mgt/SessionValidationScheduler.html" title="interface in org.apache.shiro.session.mgt">SessionValidationScheduler</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#createSessionValidationScheduler()">createSessionValidationScheduler</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#destroy()">destroy</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when this object is being destroyed, allowing any necessary cleanup of internal resources.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#disableSessionValidation()">disableSessionValidation</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#doCreateSession(org.apache.shiro.session.mgt.SessionContext)">doCreateSession</A></B>(<A HREF="../../../../../org/apache/shiro/session/mgt/SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</A>&nbsp;initData)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#doGetSession(org.apache.shiro.session.mgt.SessionKey)">doGetSession</A></B>(<A HREF="../../../../../org/apache/shiro/session/mgt/SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</A>&nbsp;key)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#doValidate(org.apache.shiro.session.Session)">doValidate</A></B>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#enableSessionValidation()">enableSessionValidation</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;<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;<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#getActiveSessions()">getActiveSessions</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#getSessionValidationInterval()">getSessionValidationInterval</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/session/mgt/SessionValidationScheduler.html" title="interface in org.apache.shiro.session.mgt">SessionValidationScheduler</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#getSessionValidationScheduler()">getSessionValidationScheduler</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#getTimeout(org.apache.shiro.session.Session)">getTimeout</A></B>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subclass template hook in case per-session timeout is not based on
<A HREF="../../../../../org/apache/shiro/session/Session.html#getTimeout()"><CODE>Session.getTimeout()</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#isSessionValidationSchedulerEnabled()">isSessionValidationSchedulerEnabled</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#onExpiration(org.apache.shiro.session.Session)">onExpiration</A></B>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#onExpiration(org.apache.shiro.session.Session, org.apache.shiro.session.ExpiredSessionException, org.apache.shiro.session.mgt.SessionKey)">onExpiration</A></B>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;s,
<A HREF="../../../../../org/apache/shiro/session/ExpiredSessionException.html" title="class in org.apache.shiro.session">ExpiredSessionException</A>&nbsp;ese,
<A HREF="../../../../../org/apache/shiro/session/mgt/SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</A>&nbsp;key)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#onInvalidation(org.apache.shiro.session.Session, org.apache.shiro.session.InvalidSessionException, org.apache.shiro.session.mgt.SessionKey)">onInvalidation</A></B>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;s,
<A HREF="../../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</A>&nbsp;ise,
<A HREF="../../../../../org/apache/shiro/session/mgt/SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</A>&nbsp;key)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#retrieveSession(org.apache.shiro.session.mgt.SessionKey)">retrieveSession</A></B>(<A HREF="../../../../../org/apache/shiro/session/mgt/SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</A>&nbsp;key)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Looks up a session from the underlying data store based on the specified session key.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#setSessionValidationInterval(long)">setSessionValidationInterval</A></B>(long&nbsp;sessionValidationInterval)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If using the underlying default <tt>SessionValidationScheduler</tt> (that is, the
<A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#setSessionValidationScheduler(org.apache.shiro.session.mgt.SessionValidationScheduler)"><CODE>setSessionValidationScheduler</CODE></A> method is
never called) , this method allows one to specify how
frequently session should be validated (to check for orphans).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#setSessionValidationScheduler(org.apache.shiro.session.mgt.SessionValidationScheduler)">setSessionValidationScheduler</A></B>(<A HREF="../../../../../org/apache/shiro/session/mgt/SessionValidationScheduler.html" title="interface in org.apache.shiro.session.mgt">SessionValidationScheduler</A>&nbsp;sessionValidationScheduler)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#setSessionValidationSchedulerEnabled(boolean)">setSessionValidationSchedulerEnabled</A></B>(boolean&nbsp;sessionValidationSchedulerEnabled)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#validate(org.apache.shiro.session.Session, org.apache.shiro.session.mgt.SessionKey)">validate</A></B>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session,
<A HREF="../../../../../org/apache/shiro/session/mgt/SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</A>&nbsp;key)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#validateSessions()">validateSessions</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs session validation for all open/active sessions in the system (those that
have not been stopped or expired), and validates each one.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.shiro.session.mgt.AbstractNativeSessionManager"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.shiro.session.mgt.<A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html" title="class in org.apache.shiro.session.mgt">AbstractNativeSessionManager</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#afterStopped(org.apache.shiro.session.Session)">afterStopped</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#applyGlobalSessionTimeout(org.apache.shiro.session.Session)">applyGlobalSessionTimeout</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#beforeInvalidNotification(org.apache.shiro.session.Session)">beforeInvalidNotification</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#checkValid(org.apache.shiro.session.mgt.SessionKey)">checkValid</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#createExposedSession(org.apache.shiro.session.Session, org.apache.shiro.session.mgt.SessionContext)">createExposedSession</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#createExposedSession(org.apache.shiro.session.Session, org.apache.shiro.session.mgt.SessionKey)">createExposedSession</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#getAttribute(org.apache.shiro.session.mgt.SessionKey, java.lang.Object)">getAttribute</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#getAttributeKeys(org.apache.shiro.session.mgt.SessionKey)">getAttributeKeys</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#getHost(org.apache.shiro.session.mgt.SessionKey)">getHost</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#getLastAccessTime(org.apache.shiro.session.mgt.SessionKey)">getLastAccessTime</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#getSession(org.apache.shiro.session.mgt.SessionKey)">getSession</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#getSessionListeners()">getSessionListeners</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#getStartTimestamp(org.apache.shiro.session.mgt.SessionKey)">getStartTimestamp</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#getTimeout(org.apache.shiro.session.mgt.SessionKey)">getTimeout</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#isValid(org.apache.shiro.session.mgt.SessionKey)">isValid</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#notifyExpiration(org.apache.shiro.session.Session)">notifyExpiration</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#notifyStart(org.apache.shiro.session.Session)">notifyStart</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#notifyStop(org.apache.shiro.session.Session)">notifyStop</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#onChange(org.apache.shiro.session.Session)">onChange</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#onStart(org.apache.shiro.session.Session, org.apache.shiro.session.mgt.SessionContext)">onStart</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#onStop(org.apache.shiro.session.Session)">onStop</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#onStop(org.apache.shiro.session.Session, org.apache.shiro.session.mgt.SessionKey)">onStop</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#removeAttribute(org.apache.shiro.session.mgt.SessionKey, java.lang.Object)">removeAttribute</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#setAttribute(org.apache.shiro.session.mgt.SessionKey, java.lang.Object, java.lang.Object)">setAttribute</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#setSessionListeners(java.util.Collection)">setSessionListeners</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#setTimeout(org.apache.shiro.session.mgt.SessionKey, long)">setTimeout</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#start(org.apache.shiro.session.mgt.SessionContext)">start</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#stop(org.apache.shiro.session.mgt.SessionKey)">stop</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#touch(org.apache.shiro.session.mgt.SessionKey)">touch</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.shiro.session.mgt.AbstractSessionManager"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.shiro.session.mgt.<A HREF="../../../../../org/apache/shiro/session/mgt/AbstractSessionManager.html" title="class in org.apache.shiro.session.mgt">AbstractSessionManager</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractSessionManager.html#getGlobalSessionTimeout()">getGlobalSessionTimeout</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractSessionManager.html#setGlobalSessionTimeout(long)">setGlobalSessionTimeout</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.shiro.session.mgt.SessionManager"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from interface org.apache.shiro.session.mgt.<A HREF="../../../../../org/apache/shiro/session/mgt/SessionManager.html" title="interface in org.apache.shiro.session.mgt">SessionManager</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/shiro/session/mgt/SessionManager.html#getSession(org.apache.shiro.session.mgt.SessionKey)">getSession</A>, <A HREF="../../../../../org/apache/shiro/session/mgt/SessionManager.html#start(org.apache.shiro.session.mgt.SessionContext)">start</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_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>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="DEFAULT_SESSION_VALIDATION_INTERVAL"><!-- --></A><H3>
DEFAULT_SESSION_VALIDATION_INTERVAL</H3>
<PRE>
public static final long <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.50"><B>DEFAULT_SESSION_VALIDATION_INTERVAL</B></A></PRE>
<DL>
<DD>The default interval at which sessions will be validated (1 hour);
This can be overridden by calling <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#setSessionValidationInterval(long)"><CODE>setSessionValidationInterval(long)</CODE></A>
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.shiro.session.mgt.AbstractValidatingSessionManager.DEFAULT_SESSION_VALIDATION_INTERVAL">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="sessionValidationSchedulerEnabled"><!-- --></A><H3>
sessionValidationSchedulerEnabled</H3>
<PRE>
protected boolean <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.52"><B>sessionValidationSchedulerEnabled</B></A></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="sessionValidationScheduler"><!-- --></A><H3>
sessionValidationScheduler</H3>
<PRE>
protected <A HREF="../../../../../org/apache/shiro/session/mgt/SessionValidationScheduler.html" title="interface in org.apache.shiro.session.mgt">SessionValidationScheduler</A> <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.57"><B>sessionValidationScheduler</B></A></PRE>
<DL>
<DD>Scheduler used to validate sessions on a regular basis.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="sessionValidationInterval"><!-- --></A><H3>
sessionValidationInterval</H3>
<PRE>
protected long <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.59"><B>sessionValidationInterval</B></A></PRE>
<DL>
<DL>
</DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_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>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="AbstractValidatingSessionManager()"><!-- --></A><H3>
AbstractValidatingSessionManager</H3>
<PRE>
public <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.61"><B>AbstractValidatingSessionManager</B></A>()</PRE>
<DL>
</DL>
<!-- ============ 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="isSessionValidationSchedulerEnabled()"><!-- --></A><H3>
isSessionValidationSchedulerEnabled</H3>
<PRE>
public boolean <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.66"><B>isSessionValidationSchedulerEnabled</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setSessionValidationSchedulerEnabled(boolean)"><!-- --></A><H3>
setSessionValidationSchedulerEnabled</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.71"><B>setSessionValidationSchedulerEnabled</B></A>(boolean&nbsp;sessionValidationSchedulerEnabled)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setSessionValidationScheduler(org.apache.shiro.session.mgt.SessionValidationScheduler)"><!-- --></A><H3>
setSessionValidationScheduler</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.75"><B>setSessionValidationScheduler</B></A>(<A HREF="../../../../../org/apache/shiro/session/mgt/SessionValidationScheduler.html" title="interface in org.apache.shiro.session.mgt">SessionValidationScheduler</A>&nbsp;sessionValidationScheduler)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getSessionValidationScheduler()"><!-- --></A><H3>
getSessionValidationScheduler</H3>
<PRE>
public <A HREF="../../../../../org/apache/shiro/session/mgt/SessionValidationScheduler.html" title="interface in org.apache.shiro.session.mgt">SessionValidationScheduler</A> <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.79"><B>getSessionValidationScheduler</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setSessionValidationInterval(long)"><!-- --></A><H3>
setSessionValidationInterval</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.104"><B>setSessionValidationInterval</B></A>(long&nbsp;sessionValidationInterval)</PRE>
<DL>
<DD>If using the underlying default <tt>SessionValidationScheduler</tt> (that is, the
<A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#setSessionValidationScheduler(org.apache.shiro.session.mgt.SessionValidationScheduler)"><CODE>setSessionValidationScheduler</CODE></A> method is
never called) , this method allows one to specify how
frequently session should be validated (to check for orphans). The default value is
<A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#DEFAULT_SESSION_VALIDATION_INTERVAL"><CODE>DEFAULT_SESSION_VALIDATION_INTERVAL</CODE></A>.
<p/>
If you override the default scheduler, it is assumed that overriding instance 'knows' how often to
validate sessions, and this attribute will be ignored.
<p/>
Unless this method is called, the default value is <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#DEFAULT_SESSION_VALIDATION_INTERVAL"><CODE>DEFAULT_SESSION_VALIDATION_INTERVAL</CODE></A>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>sessionValidationInterval</CODE> - the time in milliseconds between checking for valid sessions to reap orphans.</DL>
</DD>
</DL>
<HR>
<A NAME="getSessionValidationInterval()"><!-- --></A><H3>
getSessionValidationInterval</H3>
<PRE>
public long <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.108"><B>getSessionValidationInterval</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="doGetSession(org.apache.shiro.session.mgt.SessionKey)"><!-- --></A><H3>
doGetSession</H3>
<PRE>
protected final <A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A> <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.113"><B>doGetSession</B></A>(<A HREF="../../../../../org/apache/shiro/session/mgt/SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</A>&nbsp;key)
throws <A HREF="../../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</A></PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#doGetSession(org.apache.shiro.session.mgt.SessionKey)">doGetSession</A></CODE> in class <CODE><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html" title="class in org.apache.shiro.session.mgt">AbstractNativeSessionManager</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="retrieveSession(org.apache.shiro.session.mgt.SessionKey)"><!-- --></A><H3>
retrieveSession</H3>
<PRE>
protected abstract <A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A> <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.132"><B>retrieveSession</B></A>(<A HREF="../../../../../org/apache/shiro/session/mgt/SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</A>&nbsp;key)
throws <A HREF="../../../../../org/apache/shiro/session/UnknownSessionException.html" title="class in org.apache.shiro.session">UnknownSessionException</A></PRE>
<DL>
<DD>Looks up a session from the underlying data store based on the specified session key.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - the session key to use to look up the target session.
<DT><B>Returns:</B><DD>the session identified by <code>sessionId</code>.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/session/UnknownSessionException.html" title="class in org.apache.shiro.session">UnknownSessionException</A></CODE> - if there is no session identified by <code>sessionId</code>.</DL>
</DD>
</DL>
<HR>
<A NAME="createSession(org.apache.shiro.session.mgt.SessionContext)"><!-- --></A><H3>
createSession</H3>
<PRE>
protected <A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A> <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.134"><B>createSession</B></A>(<A HREF="../../../../../org/apache/shiro/session/mgt/SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</A>&nbsp;context)
throws <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#createSession(org.apache.shiro.session.mgt.SessionContext)">AbstractNativeSessionManager</A></CODE></B></DD>
<DD>Creates a new <code>Session Session</code> instance based on the specified (possibly <code>null</code>)
initialization data. Implementing classes must manage the persistent state of the returned session such that it
could later be acquired via the <A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#getSession(org.apache.shiro.session.mgt.SessionKey)"><CODE>AbstractNativeSessionManager.getSession(SessionKey)</CODE></A> method.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#createSession(org.apache.shiro.session.mgt.SessionContext)">createSession</A></CODE> in class <CODE><A HREF="../../../../../org/apache/shiro/session/mgt/AbstractNativeSessionManager.html" title="class in org.apache.shiro.session.mgt">AbstractNativeSessionManager</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>context</CODE> - the initialization data that can be used by the implementation or underlying
<A HREF="../../../../../org/apache/shiro/session/mgt/SessionFactory.html" title="interface in org.apache.shiro.session.mgt"><CODE>SessionFactory</CODE></A> when instantiating the internal <code>Session</code> instance.
<DT><B>Returns:</B><DD>the new <code>Session</code> instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/authz/HostUnauthorizedException.html" title="class in org.apache.shiro.authz">HostUnauthorizedException</A></CODE> - if the system access control policy restricts access based
on client location/IP and the specified hostAddress hasn't been enabled.
<DD><CODE><A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></CODE> - if the system access control policy does not allow the currently executing
caller to start sessions.</DL>
</DD>
</DL>
<HR>
<A NAME="doCreateSession(org.apache.shiro.session.mgt.SessionContext)"><!-- --></A><H3>
doCreateSession</H3>
<PRE>
protected abstract <A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A> <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.139"><B>doCreateSession</B></A>(<A HREF="../../../../../org/apache/shiro/session/mgt/SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</A>&nbsp;initData)
throws <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="validate(org.apache.shiro.session.Session, org.apache.shiro.session.mgt.SessionKey)"><!-- --></A><H3>
validate</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.141"><B>validate</B></A>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session,
<A HREF="../../../../../org/apache/shiro/session/mgt/SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</A>&nbsp;key)
throws <A HREF="../../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="onExpiration(org.apache.shiro.session.Session, org.apache.shiro.session.ExpiredSessionException, org.apache.shiro.session.mgt.SessionKey)"><!-- --></A><H3>
onExpiration</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.153"><B>onExpiration</B></A>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;s,
<A HREF="../../../../../org/apache/shiro/session/ExpiredSessionException.html" title="class in org.apache.shiro.session">ExpiredSessionException</A>&nbsp;ese,
<A HREF="../../../../../org/apache/shiro/session/mgt/SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</A>&nbsp;key)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="onExpiration(org.apache.shiro.session.Session)"><!-- --></A><H3>
onExpiration</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.163"><B>onExpiration</B></A>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="afterExpired(org.apache.shiro.session.Session)"><!-- --></A><H3>
afterExpired</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.167"><B>afterExpired</B></A>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="onInvalidation(org.apache.shiro.session.Session, org.apache.shiro.session.InvalidSessionException, org.apache.shiro.session.mgt.SessionKey)"><!-- --></A><H3>
onInvalidation</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.170"><B>onInvalidation</B></A>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;s,
<A HREF="../../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</A>&nbsp;ise,
<A HREF="../../../../../org/apache/shiro/session/mgt/SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</A>&nbsp;key)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="doValidate(org.apache.shiro.session.Session)"><!-- --></A><H3>
doValidate</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.184"><B>doValidate</B></A>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)
throws <A HREF="../../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="getTimeout(org.apache.shiro.session.Session)"><!-- --></A><H3>
getTimeout</H3>
<PRE>
protected long <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.205"><B>getTimeout</B></A>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)</PRE>
<DL>
<DD>Subclass template hook in case per-session timeout is not based on
<A HREF="../../../../../org/apache/shiro/session/Session.html#getTimeout()"><CODE>Session.getTimeout()</CODE></A>.
<p/>
<p>This implementation merely returns <A HREF="../../../../../org/apache/shiro/session/Session.html#getTimeout()"><CODE>Session.getTimeout()</CODE></A></p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the session for which to determine session timeout.
<DT><B>Returns:</B><DD>the time in milliseconds the specified session may remain idle before expiring.</DL>
</DD>
</DL>
<HR>
<A NAME="createSessionValidationScheduler()"><!-- --></A><H3>
createSessionValidationScheduler</H3>
<PRE>
protected <A HREF="../../../../../org/apache/shiro/session/mgt/SessionValidationScheduler.html" title="interface in org.apache.shiro.session.mgt">SessionValidationScheduler</A> <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.209"><B>createSessionValidationScheduler</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="enableSessionValidation()"><!-- --></A><H3>
enableSessionValidation</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.223"><B>enableSessionValidation</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="afterSessionValidationEnabled()"><!-- --></A><H3>
afterSessionValidationEnabled</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.236"><B>afterSessionValidationEnabled</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="disableSessionValidation()"><!-- --></A><H3>
disableSessionValidation</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.239"><B>disableSessionValidation</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="beforeSessionValidationDisabled()"><!-- --></A><H3>
beforeSessionValidationDisabled</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.259"><B>beforeSessionValidationDisabled</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="destroy()"><!-- --></A><H3>
destroy</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.262"><B>destroy</B></A>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/util/Destroyable.html#destroy()">Destroyable</A></CODE></B></DD>
<DD>Called when this object is being destroyed, allowing any necessary cleanup of internal resources.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/util/Destroyable.html#destroy()">destroy</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/util/Destroyable.html" title="interface in org.apache.shiro.util">Destroyable</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="validateSessions()"><!-- --></A><H3>
validateSessions</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.269"><B>validateSessions</B></A>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/session/mgt/ValidatingSessionManager.html#validateSessions()">ValidatingSessionManager</A></CODE></B></DD>
<DD>Performs session validation for all open/active sessions in the system (those that
have not been stopped or expired), and validates each one. If a session is
found to be invalid (e.g. it has expired), it is updated and saved to the EIS.
<p/>
This method is necessary in order to handle orphaned sessions and is expected to be run at
a regular interval, such as once an hour, once a day or once a week, etc.
The &quot;best&quot; frequency to run this method is entirely dependent upon the application
and would be based on factors such as performance, average number of active users, hours of
least activity, and other things.
<p/>
Most enterprise applications use a request/response programming model.
This is obvious in the case of web applications due to the HTTP protocol, but it is
equally true of remote client applications making remote method invocations. The server
essentially sits idle and only &quot;works&quot; when responding to client requests and/or
method invocations. This type of model is particularly efficent since it means the
security system only has to validate a session during those cases. Such
&quot;lazy&quot; behavior enables the system to lie stateless and/or idle and only incur
overhead for session validation when necessary.
<p/>
However, if a client forgets to log-out, or in the event of a server failure, it is
possible for sessions to be orphaned since no further requests would utilize that session.
Because of these lower-probability cases, it might be required to regularly clean-up the sessions
maintained by the system, especially if sessions are backed by a persistent data store.
<p/>
Even in applications that aren't primarily based on a request/response model,
such as those that use enterprise asynchronous messaging (where data is pushed to
a client without first receiving a client request), it is almost always acceptable to
utilize this lazy approach and run this method at defined interval.
<p/>
Systems that want to proactively validate individual sessions may simply call the
<A HREF="../../../../../org/apache/shiro/session/mgt/SessionManager.html#getSession(org.apache.shiro.session.mgt.SessionKey)"><CODE>getSession(SessionKey)</CODE></A> method on any
<code>ValidatingSessionManager</code> instance as that method is expected to
validate the session before retrieving it. Note that even with proactive calls to <code>getSession</code>,
this <code>validateSessions()</code> method should be invoked regularly anyway to <em>guarantee</em> no
orphans exist.
<p/>
<b>Note:</b> Shiro supports automatic execution of this method at a regular interval
by using <A HREF="../../../../../org/apache/shiro/session/mgt/SessionValidationScheduler.html" title="interface in org.apache.shiro.session.mgt"><CODE>SessionValidationScheduler</CODE></A>s. The Shiro default SecurityManager implementations
needing session validation will create and use one by default if one is not provided by the
application configuration.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/session/mgt/ValidatingSessionManager.html#validateSessions()">validateSessions</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/session/mgt/ValidatingSessionManager.html" title="interface in org.apache.shiro.session.mgt">ValidatingSessionManager</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/shiro/session/mgt/ValidatingSessionManager.html#validateSessions()"><CODE>ValidatingSessionManager.validateSessions()</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getActiveSessions()"><!-- --></A><H3>
getActiveSessions</H3>
<PRE>
protected abstract <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;<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&gt; <A HREF="../../../../../src-html/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#line.308"><B>getActiveSessions</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</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/AbstractValidatingSessionManager.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/session/mgt/AbstractSessionManager.html" title="class in org.apache.shiro.session.mgt"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/shiro/session/mgt/DefaultSessionContext.html" title="class in org.apache.shiro.session.mgt"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AbstractValidatingSessionManager.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;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&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>