blob: f3aef5b4f36e3864dffa7c33aa7cf0afc76218fb [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="fr">
<head>
<!-- Generated by javadoc (11.0.8) on Wed Oct 28 15:59:12 CET 2020 -->
<title>AbstractNativeSessionManager (Apache Shiro :: Core 1.7.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2020-10-28">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractNativeSessionManager (Apache Shiro :: Core 1.7.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":6,"i7":6,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractNativeSessionManager.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.shiro.session.mgt</a></div>
<h2 title="Class AbstractNativeSessionManager" class="title">Class AbstractNativeSessionManager</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="AbstractSessionManager.html" title="class in org.apache.shiro.session.mgt">org.apache.shiro.session.mgt.AbstractSessionManager</a></li>
<li>
<ul class="inheritance">
<li>org.apache.shiro.session.mgt.AbstractNativeSessionManager</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>org.apache.shiro.event.EventBusAware</code>, <code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code>, <code><a href="SessionManager.html" title="interface in org.apache.shiro.session.mgt">SessionManager</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="AbstractValidatingSessionManager.html" title="class in org.apache.shiro.session.mgt">AbstractValidatingSessionManager</a></code></dd>
</dl>
<hr>
<pre>public abstract class <a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.45">AbstractNativeSessionManager</a>
extends <a href="AbstractSessionManager.html" title="class in org.apache.shiro.session.mgt">AbstractSessionManager</a>
implements <a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a>, org.apache.shiro.event.EventBusAware</pre>
<div class="block">Abstract implementation supporting the <a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt"><code>NativeSessionManager</code></a> interface, supporting
<a href="../SessionListener.html" title="interface in org.apache.shiro.session"><code>SessionListener</code></a>s and application of the
<a href="AbstractSessionManager.html#getGlobalSessionTimeout()"><code>globalSessionTimeout</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.shiro.session.mgt.AbstractSessionManager">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.shiro.session.mgt.<a href="AbstractSessionManager.html" title="class in org.apache.shiro.session.mgt">AbstractSessionManager</a></h3>
<code><a href="AbstractSessionManager.html#DEFAULT_GLOBAL_SESSION_TIMEOUT">DEFAULT_GLOBAL_SESSION_TIMEOUT</a>, <a href="AbstractSessionManager.html#MILLIS_PER_HOUR">MILLIS_PER_HOUR</a>, <a href="AbstractSessionManager.html#MILLIS_PER_MINUTE">MILLIS_PER_MINUTE</a>, <a href="AbstractSessionManager.html#MILLIS_PER_SECOND">MILLIS_PER_SECOND</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">AbstractNativeSessionManager</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#afterStopped(org.apache.shiro.session.Session)">afterStopped</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applyGlobalSessionTimeout(org.apache.shiro.session.Session)">applyGlobalSessionTimeout</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected <a href="../Session.html" title="interface in org.apache.shiro.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#beforeInvalidNotification(org.apache.shiro.session.Session)">beforeInvalidNotification</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block">Returns the session instance to use to pass to registered <code>SessionListener</code>s for notification
that the session has been invalidated (stopped or expired).</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkValid(org.apache.shiro.session.mgt.SessionKey)">checkValid</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Returns quietly if the associated session is valid (it exists and is not stopped or expired) or throws
an <a href="../InvalidSessionException.html" title="class in org.apache.shiro.session"><code>InvalidSessionException</code></a> indicating that the session id is invalid.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected <a href="../Session.html" title="interface in org.apache.shiro.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createExposedSession(org.apache.shiro.session.Session,org.apache.shiro.session.mgt.SessionContext)">createExposedSession</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session,
<a href="SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</a>&nbsp;context)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected <a href="../Session.html" title="interface in org.apache.shiro.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createExposedSession(org.apache.shiro.session.Session,org.apache.shiro.session.mgt.SessionKey)">createExposedSession</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session,
<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected abstract <a href="../Session.html" title="interface in org.apache.shiro.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createSession(org.apache.shiro.session.mgt.SessionContext)">createSession</a></span>&#8203;(<a href="SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Creates a new <code>Session Session</code> instance based on the specified (possibly <code>null</code>)
initialization data.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../Session.html" title="interface in org.apache.shiro.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doGetSession(org.apache.shiro.session.mgt.SessionKey)">doGetSession</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object)">getAttribute</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;sessionKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;attributeKey)</code></th>
<td class="colLast">
<div class="block">Returns the object bound to the associated session identified by the specified attribute key.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAttributeKeys(org.apache.shiro.session.mgt.SessionKey)">getAttributeKeys</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Returns all attribute keys maintained by the target session or an empty collection if there are no attributes.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected org.apache.shiro.event.EventBus</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEventBus()">getEventBus</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the EventBus used to publish SessionEvents.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHost(org.apache.shiro.session.mgt.SessionKey)">getHost</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Returns the host name or IP string of the host where the session was started, if known.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLastAccessTime(org.apache.shiro.session.mgt.SessionKey)">getLastAccessTime</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Returns the time the associated <code>Session</code> last interacted with the system.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../Session.html" title="interface in org.apache.shiro.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSession(org.apache.shiro.session.mgt.SessionKey)">getSession</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Retrieves the session corresponding to the specified contextual data (such as a session ID if applicable), or
<code>null</code> if no Session could be found.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../SessionListener.html" title="interface in org.apache.shiro.session">SessionListener</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSessionListeners()">getSessionListeners</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStartTimestamp(org.apache.shiro.session.mgt.SessionKey)">getStartTimestamp</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Returns the time the associated <code>Session</code> started (was created).</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTimeout(org.apache.shiro.session.mgt.SessionKey)">getTimeout</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Returns the time in milliseconds that the associated session may remain idle before expiring.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValid(org.apache.shiro.session.mgt.SessionKey)">isValid</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> if the associated session is valid (it exists and is not stopped nor expired),
<code>false</code> otherwise.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notifyExpiration(org.apache.shiro.session.Session)">notifyExpiration</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notifyStart(org.apache.shiro.session.Session)">notifyStart</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block">Notifies any interested <a href="../SessionListener.html" title="interface in org.apache.shiro.session"><code>SessionListener</code></a>s that a Session has started.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notifyStop(org.apache.shiro.session.Session)">notifyStop</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onChange(org.apache.shiro.session.Session)">onChange</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;s)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStart(org.apache.shiro.session.Session,org.apache.shiro.session.mgt.SessionContext)">onStart</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session,
<a href="SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Template method that allows subclasses to react to a new session being created.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStop(org.apache.shiro.session.Session)">onStop</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStop(org.apache.shiro.session.Session,org.apache.shiro.session.mgt.SessionKey)">onStop</a></span>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session,
<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#publishEvent(java.lang.Object)">publishEvent</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;event)</code></th>
<td class="colLast">
<div class="block">Publishes events on the event bus if the event bus is non-null, otherwise does nothing.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object)">removeAttribute</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;sessionKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;attributeKey)</code></th>
<td class="colLast">
<div class="block">Removes (unbinds) the object bound to associated <code>Session</code> under the given <code>attributeKey</code>.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object,java.lang.Object)">setAttribute</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;sessionKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;attributeKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Binds the specified <code>value</code> to the associated session uniquely identified by the <code>attributeKey</code>.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEventBus(org.apache.shiro.event.EventBus)">setEventBus</a></span>&#8203;(org.apache.shiro.event.EventBus&nbsp;eventBus)</code></th>
<td class="colLast">
<div class="block">Sets the EventBus to use to publish SessionEvents.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSessionListeners(java.util.Collection)">setSessionListeners</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../SessionListener.html" title="interface in org.apache.shiro.session">SessionListener</a>&gt;&nbsp;listeners)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTimeout(org.apache.shiro.session.mgt.SessionKey,long)">setTimeout</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key,
long&nbsp;maxIdleTimeInMillis)</code></th>
<td class="colLast">
<div class="block">Sets the time in milliseconds that the associated session may remain idle before expiring.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="../Session.html" title="interface in org.apache.shiro.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#start(org.apache.shiro.session.mgt.SessionContext)">start</a></span>&#8203;(<a href="SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Starts a new session based on the specified contextual initialization data, which can be used by the underlying
implementation to determine how exactly to create the internal Session instance.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop(org.apache.shiro.session.mgt.SessionKey)">stop</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Explicitly stops the associated session, thereby releasing all of its resources.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#touch(org.apache.shiro.session.mgt.SessionKey)">touch</a></span>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Updates the last accessed time of the session identified by <code>sessionId</code>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.shiro.session.mgt.AbstractSessionManager">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.shiro.session.mgt.<a href="AbstractSessionManager.html" title="class in org.apache.shiro.session.mgt">AbstractSessionManager</a></h3>
<code><a href="AbstractSessionManager.html#getGlobalSessionTimeout()">getGlobalSessionTimeout</a>, <a href="AbstractSessionManager.html#setGlobalSessionTimeout(long)">setGlobalSessionTimeout</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractNativeSessionManager</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.53">AbstractNativeSessionManager</a>()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="setSessionListeners(java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSessionListeners</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.57">setSessionListeners</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../SessionListener.html" title="interface in org.apache.shiro.session">SessionListener</a>&gt;&nbsp;listeners)</pre>
</li>
</ul>
<a id="getSessionListeners()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSessionListeners</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../SessionListener.html" title="interface in org.apache.shiro.session">SessionListener</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.61">getSessionListeners</a>()</pre>
</li>
</ul>
<a id="getEventBus()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEventBus</h4>
<pre class="methodSignature">protected&nbsp;org.apache.shiro.event.EventBus&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.72">getEventBus</a>()</pre>
<div class="block">Returns the EventBus used to publish SessionEvents.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the EventBus used to publish SessionEvents.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.3</dd>
</dl>
</li>
</ul>
<a id="setEventBus(org.apache.shiro.event.EventBus)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEventBus</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.82">setEventBus</a>&#8203;(org.apache.shiro.event.EventBus&nbsp;eventBus)</pre>
<div class="block">Sets the EventBus to use to publish SessionEvents.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>setEventBus</code>&nbsp;in interface&nbsp;<code>org.apache.shiro.event.EventBusAware</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>eventBus</code> - the EventBus to use to publish SessionEvents.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.3</dd>
</dl>
</li>
</ul>
<a id="publishEvent(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publishEvent</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.92">publishEvent</a>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;event)</pre>
<div class="block">Publishes events on the event bus if the event bus is non-null, otherwise does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - the event to publish on the event bus if the event bus exists.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.3</dd>
</dl>
</li>
</ul>
<a id="start(org.apache.shiro.session.mgt.SessionContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre class="methodSignature">public&nbsp;<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.98">start</a>&#8203;(<a href="SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</a>&nbsp;context)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SessionManager.html#start(org.apache.shiro.session.mgt.SessionContext)">SessionManager</a></code></span></div>
<div class="block">Starts a new session based on the specified contextual initialization data, which can be used by the underlying
implementation to determine how exactly to create the internal Session instance.
<p/>
This method is mainly used in framework development, as the implementation will often relay the argument
to an underlying <a href="SessionFactory.html" title="interface in org.apache.shiro.session.mgt"><code>SessionFactory</code></a> which could use the context to construct the internal Session
instance in a specific manner. This allows pluggable <a href="../Session.html" title="interface in org.apache.shiro.session"><code>Session</code></a> creation
logic by simply injecting a <code>SessionFactory</code> into the <code>SessionManager</code> instance.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionManager.html#start(org.apache.shiro.session.mgt.SessionContext)">start</a></code>&nbsp;in interface&nbsp;<code><a href="SessionManager.html" title="interface in org.apache.shiro.session.mgt">SessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - the contextual initialization data that can be used by the implementation or underlying
<a href="SessionFactory.html" title="interface in org.apache.shiro.session.mgt"><code>SessionFactory</code></a> when instantiating the internal <code>Session</code> instance.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created session.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SessionFactory.html#createSession(org.apache.shiro.session.mgt.SessionContext)"><code>SessionFactory.createSession(SessionContext)</code></a></dd>
</dl>
</li>
</ul>
<a id="createSession(org.apache.shiro.session.mgt.SessionContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSession</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.121">createSession</a>&#8203;(<a href="SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</a>&nbsp;context)
throws <a href="../../authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</a></pre>
<div class="block">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="#getSession(org.apache.shiro.session.mgt.SessionKey)"><code>getSession(SessionKey)</code></a> method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - the initialization data that can be used by the implementation or underlying
<a href="SessionFactory.html" title="interface in org.apache.shiro.session.mgt"><code>SessionFactory</code></a> when instantiating the internal <code>Session</code> instance.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new <code>Session</code> instance.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../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>
<dd><code><a href="../../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.</dd>
</dl>
</li>
</ul>
<a id="applyGlobalSessionTimeout(org.apache.shiro.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyGlobalSessionTimeout</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.123">applyGlobalSessionTimeout</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</pre>
</li>
</ul>
<a id="onStart(org.apache.shiro.session.Session,org.apache.shiro.session.mgt.SessionContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onStart</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.136">onStart</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session,
<a href="SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</a>&nbsp;context)</pre>
<div class="block">Template method that allows subclasses to react to a new session being created.
<p/>
This method is invoked <em>before</em> any session listeners are notified.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - the session that was just <a href="#createSession(org.apache.shiro.session.mgt.SessionContext)"><code>created</code></a>.</dd>
<dd><code>context</code> - the <a href="SessionContext.html" title="interface in org.apache.shiro.session.mgt"><code>SessionContext</code></a> that was used to start the session.</dd>
</dl>
</li>
</ul>
<a id="getSession(org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSession</h4>
<pre class="methodSignature">public&nbsp;<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.139">getSession</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)
throws <a href="../SessionException.html" title="class in org.apache.shiro.session">SessionException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SessionManager.html#getSession(org.apache.shiro.session.mgt.SessionKey)">SessionManager</a></code></span></div>
<div class="block">Retrieves the session corresponding to the specified contextual data (such as a session ID if applicable), or
<code>null</code> if no Session could be found. If a session is found but invalid (stopped or expired), a
<a href="../SessionException.html" title="class in org.apache.shiro.session"><code>SessionException</code></a> will be thrown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SessionManager.html#getSession(org.apache.shiro.session.mgt.SessionKey)">getSession</a></code>&nbsp;in interface&nbsp;<code><a href="SessionManager.html" title="interface in org.apache.shiro.session.mgt">SessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the Session key to use to look-up the Session</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>Session</code> instance corresponding to the given lookup key or <code>null</code> if no session
could be acquired.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../SessionException.html" title="class in org.apache.shiro.session">SessionException</a></code> - if a session was found but it was invalid (stopped/expired).</dd>
</dl>
</li>
</ul>
<a id="doGetSession(org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doGetSession</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.160">doGetSession</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)
throws <a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code></dd>
</dl>
</li>
</ul>
<a id="createExposedSession(org.apache.shiro.session.Session,org.apache.shiro.session.mgt.SessionContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createExposedSession</h4>
<pre class="methodSignature">protected&nbsp;<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.162">createExposedSession</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session,
<a href="SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</a>&nbsp;context)</pre>
</li>
</ul>
<a id="createExposedSession(org.apache.shiro.session.Session,org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createExposedSession</h4>
<pre class="methodSignature">protected&nbsp;<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.166">createExposedSession</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session,
<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</pre>
</li>
</ul>
<a id="beforeInvalidNotification(org.apache.shiro.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beforeInvalidNotification</h4>
<pre class="methodSignature">protected&nbsp;<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.180">beforeInvalidNotification</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</pre>
<div class="block">Returns the session instance to use to pass to registered <code>SessionListener</code>s for notification
that the session has been invalidated (stopped or expired).
<p/>
The default implementation returns an <a href="ImmutableProxiedSession.html" title="class in org.apache.shiro.session.mgt"><code>ImmutableProxiedSession</code></a> instance to ensure
that the specified <code>session</code> argument is not modified by any listeners.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - the <code>Session</code> object being invalidated.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>Session</code> instance to use to pass to registered <code>SessionListener</code>s for notification.</dd>
</dl>
</li>
</ul>
<a id="notifyStart(org.apache.shiro.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyStart</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.192">notifyStart</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</pre>
<div class="block">Notifies any interested <a href="../SessionListener.html" title="interface in org.apache.shiro.session"><code>SessionListener</code></a>s that a Session has started. This method is invoked
<em>after</em> the <a href="#onStart(org.apache.shiro.session.Session,org.apache.shiro.session.mgt.SessionContext)"><code>onStart</code></a> method is called.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - the session that has just started that will be delivered to any
<a href="#setSessionListeners(java.util.Collection)"><code>registered</code></a> session listeners.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../SessionListener.html#onStart(org.apache.shiro.session.Session)"><code>SessionListener.onStart(org.apache.shiro.session.Session)</code></a></dd>
</dl>
</li>
</ul>
<a id="notifyStop(org.apache.shiro.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyStop</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.198">notifyStop</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</pre>
</li>
</ul>
<a id="notifyExpiration(org.apache.shiro.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyExpiration</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.205">notifyExpiration</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</pre>
</li>
</ul>
<a id="getStartTimestamp(org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStartTimestamp</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.212">getStartTimestamp</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#getStartTimestamp(org.apache.shiro.session.mgt.SessionKey)">NativeSessionManager</a></code></span></div>
<div class="block">Returns the time the associated <code>Session</code> started (was created).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#getStartTimestamp(org.apache.shiro.session.mgt.SessionKey)">getStartTimestamp</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the session key to use to look up the target session.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the time the specified <code>Session</code> started (was created).</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Session.html#getStartTimestamp()"><code>Session.getStartTimestamp()</code></a></dd>
</dl>
</li>
</ul>
<a id="getLastAccessTime(org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLastAccessTime</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.216">getLastAccessTime</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#getLastAccessTime(org.apache.shiro.session.mgt.SessionKey)">NativeSessionManager</a></code></span></div>
<div class="block">Returns the time the associated <code>Session</code> last interacted with the system.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#getLastAccessTime(org.apache.shiro.session.mgt.SessionKey)">getLastAccessTime</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the session key to use to look up the target session.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>time the session last accessed the system</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Session.html#getLastAccessTime()"><code>Session.getLastAccessTime()</code></a>,
<a href="../Session.html#touch()"><code>Session.touch()</code></a></dd>
</dl>
</li>
</ul>
<a id="getTimeout(org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTimeout</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.220">getTimeout</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)
throws <a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#getTimeout(org.apache.shiro.session.mgt.SessionKey)">NativeSessionManager</a></code></span></div>
<div class="block">Returns the time in milliseconds that the associated session may remain idle before expiring.
<ul>
<li>A negative return value means the session will never expire.</li>
<li>A non-negative return value (0 or greater) means the session expiration will occur if idle for that
length of time.</li>
</ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#getTimeout(org.apache.shiro.session.mgt.SessionKey)">getTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the session key to use to look up the target session.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the time in milliseconds that the associated session may remain idle before expiring.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if the session has been stopped or expired prior to calling this method.</dd>
</dl>
</li>
</ul>
<a id="setTimeout(org.apache.shiro.session.mgt.SessionKey,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTimeout</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.224">setTimeout</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key,
long&nbsp;maxIdleTimeInMillis)
throws <a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#setTimeout(org.apache.shiro.session.mgt.SessionKey,long)">NativeSessionManager</a></code></span></div>
<div class="block">Sets the time in milliseconds that the associated session may remain idle before expiring.
<ul>
<li>A negative return value means the session will never expire.</li>
<li>A non-negative return value (0 or greater) means the session expiration will occur if idle for that
length of time.</li>
</ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#setTimeout(org.apache.shiro.session.mgt.SessionKey,long)">setTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the session key to use to look up the target session.</dd>
<dd><code>maxIdleTimeInMillis</code> - the time in milliseconds that the associated session may remain idle before expiring.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if the session has been stopped or expired prior to calling this method.</dd>
</dl>
</li>
</ul>
<a id="touch(org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>touch</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.230">touch</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)
throws <a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#touch(org.apache.shiro.session.mgt.SessionKey)">NativeSessionManager</a></code></span></div>
<div class="block">Updates the last accessed time of the session identified by <code>sessionId</code>. This
can be used to explicitly ensure that a session does not time out.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#touch(org.apache.shiro.session.mgt.SessionKey)">touch</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the session key to use to look up the target session.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if the session has been stopped or expired prior to calling this method.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Session.html#touch()"><code>Session.touch()</code></a></dd>
</dl>
</li>
</ul>
<a id="getHost(org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHost</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.236">getHost</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#getHost(org.apache.shiro.session.mgt.SessionKey)">NativeSessionManager</a></code></span></div>
<div class="block">Returns the host name or IP string of the host where the session was started, if known. If
no host name or IP was specified when starting the session, this method returns <code>null</code></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#getHost(org.apache.shiro.session.mgt.SessionKey)">getHost</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the session key to use to look up the target session.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the host name or ip address of the host where the session originated, if known. If unknown,
this method returns <code>null</code>.</dd>
</dl>
</li>
</ul>
<a id="getAttributeKeys(org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttributeKeys</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.240">getAttributeKeys</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#getAttributeKeys(org.apache.shiro.session.mgt.SessionKey)">NativeSessionManager</a></code></span></div>
<div class="block">Returns all attribute keys maintained by the target session or an empty collection if there are no attributes.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#getAttributeKeys(org.apache.shiro.session.mgt.SessionKey)">getAttributeKeys</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the session key to use to look up the target session.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>all attribute keys maintained by the target session or an empty collection if there are no attributes.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Session.html#getAttributeKeys()"><code>Session.getAttributeKeys()</code></a></dd>
</dl>
</li>
</ul>
<a id="getAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttribute</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.248">getAttribute</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;sessionKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;attributeKey)
throws <a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#getAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object)">NativeSessionManager</a></code></span></div>
<div class="block">Returns the object bound to the associated session identified by the specified attribute key. If there
is no object bound under the attribute key for the given session, <code>null</code> is returned.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#getAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object)">getAttribute</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sessionKey</code> - session key to use to look up the target session.</dd>
<dd><code>attributeKey</code> - the unique name of the object bound to the associated session</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the object bound under the <code>attributeKey</code> or <code>null</code> if there is no object bound.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if the specified session has stopped or expired prior to calling this method.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Session.html#getAttribute(java.lang.Object)"><code>Session.getAttribute(Object key)</code></a></dd>
</dl>
</li>
</ul>
<a id="setAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAttribute</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.252">setAttribute</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;sessionKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;attributeKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)
throws <a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#setAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object,java.lang.Object)">NativeSessionManager</a></code></span></div>
<div class="block">Binds the specified <code>value</code> to the associated session uniquely identified by the <code>attributeKey</code>.
If there is already a session attribute bound under the <code>attributeKey</code>, that existing object will be
replaced by the new <code>value</code>.
<p/>
If the <code>value</code> parameter is null, it has the same effect as if the
<a href="NativeSessionManager.html#removeAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object)"><code>NativeSessionManager.removeAttribute(SessionKey sessionKey, Object attributeKey)</code></a> method was called.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#setAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object,java.lang.Object)">setAttribute</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sessionKey</code> - the session key to use to look up the target session.</dd>
<dd><code>attributeKey</code> - the key under which the <code>value</code> object will be bound in this session</dd>
<dd><code>value</code> - the object to bind in this session.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if the specified session has stopped or expired prior to calling this method.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Session.html#setAttribute(java.lang.Object,java.lang.Object)"><code>Session.setAttribute(Object key, Object value)</code></a></dd>
</dl>
</li>
</ul>
<a id="removeAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAttribute</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.262">removeAttribute</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;sessionKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;attributeKey)
throws <a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#removeAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object)">NativeSessionManager</a></code></span></div>
<div class="block">Removes (unbinds) the object bound to associated <code>Session</code> under the given <code>attributeKey</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#removeAttribute(org.apache.shiro.session.mgt.SessionKey,java.lang.Object)">removeAttribute</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sessionKey</code> - session key to use to look up the target session.</dd>
<dd><code>attributeKey</code> - the key uniquely identifying the object to remove</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the object removed or <code>null</code> if there was no object bound under the specified <code>attributeKey</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if the specified session has stopped or expired prior to calling this method.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Session.html#removeAttribute(java.lang.Object)"><code>Session.removeAttribute(Object key)</code></a></dd>
</dl>
</li>
</ul>
<a id="isValid(org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValid</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.271">isValid</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#isValid(org.apache.shiro.session.mgt.SessionKey)">NativeSessionManager</a></code></span></div>
<div class="block">Returns <code>true</code> if the associated session is valid (it exists and is not stopped nor expired),
<code>false</code> otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#isValid(org.apache.shiro.session.mgt.SessionKey)">isValid</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the session key to use to look up the target session.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the session is valid (exists and is not stopped or expired), <code>false</code> otherwise.</dd>
</dl>
</li>
</ul>
<a id="stop(org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.280">stop</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)
throws <a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#stop(org.apache.shiro.session.mgt.SessionKey)">NativeSessionManager</a></code></span></div>
<div class="block">Explicitly stops the associated session, thereby releasing all of its resources.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#stop(org.apache.shiro.session.mgt.SessionKey)">stop</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the session key to use to look up the target session.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if the session has stopped or expired prior to calling this method.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Session.html#stop()"><code>Session.stop()</code></a></dd>
</dl>
</li>
</ul>
<a id="onStop(org.apache.shiro.session.Session,org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onStop</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.294">onStop</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session,
<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)</pre>
</li>
</ul>
<a id="onStop(org.apache.shiro.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onStop</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.298">onStop</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</pre>
</li>
</ul>
<a id="afterStopped(org.apache.shiro.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>afterStopped</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.302">afterStopped</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;session)</pre>
</li>
</ul>
<a id="checkValid(org.apache.shiro.session.mgt.SessionKey)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkValid</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.305">checkValid</a>&#8203;(<a href="SessionKey.html" title="interface in org.apache.shiro.session.mgt">SessionKey</a>&nbsp;key)
throws <a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="NativeSessionManager.html#checkValid(org.apache.shiro.session.mgt.SessionKey)">NativeSessionManager</a></code></span></div>
<div class="block">Returns quietly if the associated session is valid (it exists and is not stopped or expired) or throws
an <a href="../InvalidSessionException.html" title="class in org.apache.shiro.session"><code>InvalidSessionException</code></a> indicating that the session id is invalid. This
might be preferred to be used instead of <a href="NativeSessionManager.html#isValid(org.apache.shiro.session.mgt.SessionKey)"><code>NativeSessionManager.isValid(org.apache.shiro.session.mgt.SessionKey)</code></a> since any exception thrown will definitively explain
the reason for invalidation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NativeSessionManager.html#checkValid(org.apache.shiro.session.mgt.SessionKey)">checkValid</a></code>&nbsp;in interface&nbsp;<code><a href="NativeSessionManager.html" title="interface in org.apache.shiro.session.mgt">NativeSessionManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the session key to use to look up the target session.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if the session id is invalid (it does not exist or it is stopped or expired).</dd>
</dl>
</li>
</ul>
<a id="onChange(org.apache.shiro.session.Session)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onChange</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/session/mgt/AbstractNativeSessionManager.html#line.310">onChange</a>&#8203;(<a href="../Session.html" title="interface in org.apache.shiro.session">Session</a>&nbsp;s)</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractNativeSessionManager.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>