blob: 5f58afbc85d81ef8372d9d00f9c070e2c00e6b86 [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>
SessionDAO (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="SessionDAO (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/SessionDAO.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/eis/RandomSessionIdGenerator.html" title="class in org.apache.shiro.session.mgt.eis"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/apache/shiro/session/mgt/eis/SessionIdGenerator.html" title="interface in org.apache.shiro.session.mgt.eis"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../index.html?org/apache/shiro/session/mgt/eis/SessionDAO.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="SessionDAO.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.session.mgt.eis</FONT>
<BR>
Interface SessionDAO</H2>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../../org/apache/shiro/session/mgt/eis/AbstractSessionDAO.html" title="class in org.apache.shiro.session.mgt.eis">AbstractSessionDAO</A>, <A HREF="../../../../../../org/apache/shiro/session/mgt/eis/CachingSessionDAO.html" title="class in org.apache.shiro.session.mgt.eis">CachingSessionDAO</A>, <A HREF="../../../../../../org/apache/shiro/session/mgt/eis/EnterpriseCacheSessionDAO.html" title="class in org.apache.shiro.session.mgt.eis">EnterpriseCacheSessionDAO</A>, <A HREF="../../../../../../org/apache/shiro/session/mgt/eis/MemorySessionDAO.html" title="class in org.apache.shiro.session.mgt.eis">MemorySessionDAO</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <A HREF="../../../../../../src-html/org/apache/shiro/session/mgt/eis/SessionDAO.html#line.42"><B>SessionDAO</B></A></DL>
</PRE>
<P>
Data Access Object design pattern specification to enable <A HREF="../../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session"><CODE>Session</CODE></A> access to an
EIS (Enterprise Information System). It provides your four typical CRUD methods:
<A HREF="../../../../../../org/apache/shiro/session/mgt/eis/SessionDAO.html#create(org.apache.shiro.session.Session)"><CODE>create(org.apache.shiro.session.Session)</CODE></A>, <A HREF="../../../../../../org/apache/shiro/session/mgt/eis/SessionDAO.html#readSession(java.io.Serializable)"><CODE>readSession(java.io.Serializable)</CODE></A>, <A HREF="../../../../../../org/apache/shiro/session/mgt/eis/SessionDAO.html#update(org.apache.shiro.session.Session)"><CODE>update(org.apache.shiro.session.Session)</CODE></A>,
and <A HREF="../../../../../../org/apache/shiro/session/mgt/eis/SessionDAO.html#delete(org.apache.shiro.session.Session)"><CODE>delete(org.apache.shiro.session.Session)</CODE></A>.
<p/>
The remaining <A HREF="../../../../../../org/apache/shiro/session/mgt/eis/SessionDAO.html#getActiveSessions()"><CODE>getActiveSessions()</CODE></A> method exists as a support mechanism to pre-emptively orphaned sessions,
typically by <A HREF="../../../../../../org/apache/shiro/session/mgt/ValidatingSessionManager.html" title="interface in org.apache.shiro.session.mgt"><CODE>ValidatingSessionManager</CODE></A>s), and should
be as efficient as possible, especially if there are thousands of active sessions. Large scale/high performance
implementations will often return a subset of the total active sessions and perform validation a little more
frequently, rather than return a massive set and infrequently validate.
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>0.1</DD>
</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="http://java.sun.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/shiro/session/mgt/eis/SessionDAO.html#create(org.apache.shiro.session.Session)">create</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;Inserts a new Session record into the underling EIS (e.g.</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/eis/SessionDAO.html#delete(org.apache.shiro.session.Session)">delete</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;Deletes the associated EIS record of the specified <code>session</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&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/eis/SessionDAO.html#getActiveSessions()">getActiveSessions</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all sessions in the EIS that are considered active, meaning all sessions that
haven't been stopped/expired.</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/Session.html" title="interface in org.apache.shiro.session">Session</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/shiro/session/mgt/eis/SessionDAO.html#readSession(java.io.Serializable)">readSession</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>&nbsp;sessionId)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieves the session from the EIS uniquely identified by the specified
<code>sessionId</code>.</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/eis/SessionDAO.html#update(org.apache.shiro.session.Session)">update</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;Updates (persists) data from a previously created Session instance in the EIS identified by
<code>{@link Session#getId() session.getId()}</code>.</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="create(org.apache.shiro.session.Session)"><!-- --></A><H3>
create</H3>
<PRE>
<A HREF="http://java.sun.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A> <A HREF="../../../../../../src-html/org/apache/shiro/session/mgt/eis/SessionDAO.html#line.61"><B>create</B></A>(<A HREF="../../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)</PRE>
<DL>
<DD>Inserts a new Session record into the underling EIS (e.g. Relational database, file system, persistent cache,
etc, depending on the DAO implementation).
<p/>
After this method is invoked, the <A HREF="../../../../../../org/apache/shiro/session/Session.html#getId()"><CODE>Session.getId()</CODE></A>
method executed on the argument must return a valid session identifier. That is, the following should
always be true:
<pre>
Serializable id = create( session );
id.equals( session.getId() ) == true</pre>
<p/>
Implementations are free to throw any exceptions that might occur due to
integrity violation constraints or other EIS related errors.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the <A HREF="../../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session"><CODE>Session</CODE></A> object to create in the EIS.
<DT><B>Returns:</B><DD>the EIS id (e.g. primary key) of the created <code>Session</code> object.</DL>
</DD>
</DL>
<HR>
<A NAME="readSession(java.io.Serializable)"><!-- --></A><H3>
readSession</H3>
<PRE>
<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/eis/SessionDAO.html#line.73"><B>readSession</B></A>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>&nbsp;sessionId)
throws <A HREF="../../../../../../org/apache/shiro/session/UnknownSessionException.html" title="class in org.apache.shiro.session">UnknownSessionException</A></PRE>
<DL>
<DD>Retrieves the session from the EIS uniquely identified by the specified
<code>sessionId</code>.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>sessionId</CODE> - the system-wide unique identifier of the Session object to retrieve from
the EIS.
<DT><B>Returns:</B><DD>the persisted session in the EIS 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 EIS record for any session with the
specified <code>sessionId</code></DL>
</DD>
</DL>
<HR>
<A NAME="update(org.apache.shiro.session.Session)"><!-- --></A><H3>
update</H3>
<PRE>
void <A HREF="../../../../../../src-html/org/apache/shiro/session/mgt/eis/SessionDAO.html#line.89"><B>update</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/UnknownSessionException.html" title="class in org.apache.shiro.session">UnknownSessionException</A></PRE>
<DL>
<DD>Updates (persists) data from a previously created Session instance in the EIS identified by
<code>{@link Session#getId() session.getId()}</code>. This effectively propagates
the data in the argument to the EIS record previously saved.
<p/>
In addition to UnknownSessionException, implementations are free to throw any other
exceptions that might occur due to integrity violation constraints or other EIS related
errors.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the Session to update
<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 no existing EIS session record exists with the
identifier of <A HREF="../../../../../../org/apache/shiro/session/Session.html#getId()"><CODE>session.getSessionId()</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="delete(org.apache.shiro.session.Session)"><!-- --></A><H3>
delete</H3>
<PRE>
void <A HREF="../../../../../../src-html/org/apache/shiro/session/mgt/eis/SessionDAO.html#line.98"><B>delete</B></A>(<A HREF="../../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)</PRE>
<DL>
<DD>Deletes the associated EIS record of the specified <code>session</code>. If there never
existed a session EIS record with the identifier of
<A HREF="../../../../../../org/apache/shiro/session/Session.html#getId()"><CODE>session.getId()</CODE></A>, then this method does nothing.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the session to delete.</DL>
</DD>
</DL>
<HR>
<A NAME="getActiveSessions()"><!-- --></A><H3>
getActiveSessions</H3>
<PRE>
<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/eis/SessionDAO.html#line.129"><B>getActiveSessions</B></A>()</PRE>
<DL>
<DD>Returns all sessions in the EIS that are considered active, meaning all sessions that
haven't been stopped/expired. This is primarily used to validate potential orphans.
<p/>
If there are no active sessions in the EIS, this method may return an empty collection or <code>null</code>.
<h4>Performance</h4>
This method should be as efficient as possible, especially in larger systems where there might be
thousands of active sessions. Large scale/high performance
implementations will often return a subset of the total active sessions and perform validation a little more
frequently, rather than return a massive set and validate infrequently. If efficient and possible, it would
make sense to return the oldest unstopped sessions available, ordered by
<A HREF="../../../../../../org/apache/shiro/session/Session.html#getLastAccessTime()"><CODE>lastAccessTime</CODE></A>.
<h4>Smart Results</h4>
<em>Ideally</em> this method would only return active sessions that the EIS was certain should be invalided.
Typically that is any session that is not stopped and where its lastAccessTimestamp is older than the session
timeout.
<p/>
For example, if sessions were backed by a relational database or SQL-92 'query-able' enterprise cache, you might
return something similar to the results returned by this query (assuming
<A HREF="../../../../../../org/apache/shiro/session/mgt/SimpleSession.html" title="class in org.apache.shiro.session.mgt"><CODE>SimpleSession</CODE></A>s were being stored):
<pre>
select * from sessions s where s.lastAccessTimestamp < ? and s.stopTimestamp is null
</pre>
where the <code>?</code> parameter is a date instance equal to 'now' minus the session timeout
(e.g. now - 30 minutes).
<P>
<DD><DL>
<DT><B>Returns:</B><DD>a Collection of <code>Session</code>s that are considered active, or an
empty collection or <code>null</code> if there are no active sessions.</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/SessionDAO.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/eis/RandomSessionIdGenerator.html" title="class in org.apache.shiro.session.mgt.eis"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/apache/shiro/session/mgt/eis/SessionIdGenerator.html" title="interface in org.apache.shiro.session.mgt.eis"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../index.html?org/apache/shiro/session/mgt/eis/SessionDAO.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="SessionDAO.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>