<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Session (Apache Shiro 1.13.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Session (Apache Shiro 1.13.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- Matomo --> <script>   var _paq = window._paq = window._paq || [];   /* tracker methods like "setCustomDimension" should be called before "trackPageView" */   /* We explicitly disable cookie tracking to avoid privacy issues */   _paq.push(['disableCookies']);   _paq.push(['trackPageView']);   _paq.push(['enableLinkTracking']);   (function() {     var u="//matomo.privacy.apache.org/";     _paq.push(['setTrackerUrl', u+'matomo.php']);     _paq.push(['setSiteId', '2']);     var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];     g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);   })(); </script> <!-- End Matomo Code -->
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Session.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/shiro/session/ProxiedSession.html" title="class in org.apache.shiro.session"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/shiro/session/SessionException.html" title="class in org.apache.shiro.session"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/shiro/session/Session.html" target="_top">Frames</a></li>
<li><a href="Session.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.shiro.session</div>
<h2 title="Interface Session" class="title">Interface Session</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../../../../org/apache/shiro/session/mgt/ValidatingSession.html" title="interface in org.apache.shiro.session.mgt">ValidatingSession</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../org/apache/shiro/session/mgt/DelegatingSession.html" title="class in org.apache.shiro.session.mgt">DelegatingSession</a>, <a href="../../../../org/apache/shiro/web/session/HttpServletSession.html" title="class in org.apache.shiro.web.session">HttpServletSession</a>, <a href="../../../../org/apache/shiro/session/mgt/ImmutableProxiedSession.html" title="class in org.apache.shiro.session.mgt">ImmutableProxiedSession</a>, <a href="../../../../org/apache/shiro/session/ProxiedSession.html" title="class in org.apache.shiro.session">ProxiedSession</a>, <a href="../../../../org/apache/shiro/session/mgt/SimpleSession.html" title="class in org.apache.shiro.session.mgt">SimpleSession</a></dd>
</dl>
<hr>
<br>
<pre>public interface <a href="../../../../src-html/org/apache/shiro/session/Session.html#line.37">Session</a></pre>
<div class="block">A <code>Session</code> is a stateful data context associated with a single Subject (user, daemon process,
 etc) who interacts with a software system over a period of time.
 <p/>
 A <code>Session</code> is intended to be managed by the business tier and accessible via other
 tiers without being tied to any given client technology.  This is a <em>great</em> benefit to Java
 systems, since until now, the only viable session mechanisms were the
 <code>javax.servlet.http.HttpSession</code> or Stateful Session EJB's, which many times
 unnecessarily coupled applications to web or ejb technologies.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.1</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#getAttribute-java.lang.Object-">getAttribute</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;key)</code>
<div class="block">Returns the object bound to this session identified by the specified key.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#getAttributeKeys--">getAttributeKeys</a></span>()</code>
<div class="block">Returns the keys of all the attributes stored under this session.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#getHost--">getHost</a></span>()</code>
<div class="block">Returns the host name or IP string of the host that originated this session, or <code>null</code>
 if the host is unknown.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#getId--">getId</a></span>()</code>
<div class="block">Returns the unique identifier assigned by the system upon session creation.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/6/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#getLastAccessTime--">getLastAccessTime</a></span>()</code>
<div class="block">Returns the last time the application received a request or method invocation from the user associated
 with this session.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/6/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#getStartTimestamp--">getStartTimestamp</a></span>()</code>
<div class="block">Returns the time the session was started; that is, the time the system created the instance.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#getTimeout--">getTimeout</a></span>()</code>
<div class="block">Returns the time in milliseconds that the session session may remain idle before expiring.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#removeAttribute-java.lang.Object-">removeAttribute</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;key)</code>
<div class="block">Removes (unbinds) the object bound to this session under the specified <code>key</code> name.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#setAttribute-java.lang.Object-java.lang.Object-">setAttribute</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;key,
            <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value)</code>
<div class="block">Binds the specified <code>value</code> to this session, uniquely identified by the specified
 <code>key</code> name.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#setTimeout-long-">setTimeout</a></span>(long&nbsp;maxIdleTimeInMillis)</code>
<div class="block">Sets the time in milliseconds that the session may remain idle before expiring.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#stop--">stop</a></span>()</code>
<div class="block">Explicitly stops (invalidates) this session and releases all associated resources.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/session/Session.html#touch--">touch</a></span>()</code>
<div class="block">Explicitly updates the <a href="../../../../org/apache/shiro/session/Session.html#getLastAccessTime--"><code>lastAccessTime</code></a> of this session to the current time when
 this method is invoked.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getId--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getId</h4>
<pre><a href="https://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.49">getId</a>()</pre>
<div class="block">Returns the unique identifier assigned by the system upon session creation.
 <p/>
 All return values from this method are expected to have proper <code>toString()</code>,
 <code>equals()</code>, and <code>hashCode()</code> implementations. Good candidates for such
 an identifier are <a href="https://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s, <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang"><code>Integer</code></a>s, and
 <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>s.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The unique identifier assigned to the session upon creation.</dd>
</dl>
</li>
</ul>
<a name="getStartTimestamp--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStartTimestamp</h4>
<pre><a href="https://docs.oracle.com/javase/6/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.56">getStartTimestamp</a>()</pre>
<div class="block">Returns the time the session was started; that is, the time the system created the instance.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The time the system created the session.</dd>
</dl>
</li>
</ul>
<a name="getLastAccessTime--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLastAccessTime</h4>
<pre><a href="https://docs.oracle.com/javase/6/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.65">getLastAccessTime</a>()</pre>
<div class="block">Returns the last time the application received a request or method invocation from the user associated
 with this session.  Application calls to this method do not affect this access time.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The time the user last interacted with the system.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/shiro/session/Session.html#touch--"><code>touch()</code></a></dd>
</dl>
</li>
</ul>
<a name="getTimeout--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTimeout</h4>
<pre>long&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.82">getTimeout</a>()
         throws <a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block">Returns the time in milliseconds that the session 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>
 <b>*Note:</b> if you are used to the <code>HttpSession</code>'s <code>getMaxInactiveInterval()</code> method, the scale on
 this method is different: Shiro Sessions use millisecond values for timeout whereas
 <code>HttpSession.getMaxInactiveInterval</code> uses seconds.  Always use millisecond values with Shiro sessions.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the time in milliseconds the session may remain idle before expiring.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/shiro/session/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="simpleTagLabel">Since:</span></dt>
<dd>0.2</dd>
</dl>
</li>
</ul>
<a name="setTimeout-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTimeout</h4>
<pre>void&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.100">setTimeout</a>(long&nbsp;maxIdleTimeInMillis)
         throws <a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block">Sets the time in milliseconds that the session may remain idle before expiring.
 <ul>
 <li>A negative value means the session will never expire.</li>
 <li>A non-negative value (0 or greater) means the session expiration will occur if idle for that
 length of time.</li>
 </ul>
 <p/>
 <b>*Note:</b> if you are used to the <code>HttpSession</code>'s <code>getMaxInactiveInterval()</code> method, the scale on
 this method is different: Shiro Sessions use millisecond values for timeout whereas
 <code>HttpSession.getMaxInactiveInterval</code> uses seconds.  Always use millisecond values with Shiro sessions.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>maxIdleTimeInMillis</code> - the time in milliseconds that the session may remain idle before expiring.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/shiro/session/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="simpleTagLabel">Since:</span></dt>
<dd>0.2</dd>
</dl>
</li>
</ul>
<a name="getHost--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHost</h4>
<pre><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.109">getHost</a>()</pre>
<div class="block">Returns the host name or IP string of the host that originated this session, or <code>null</code>
 if the host is unknown.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the host name or IP string of the host that originated this session, or <code>null</code>
         if the host address is unknown.</dd>
</dl>
</li>
</ul>
<a name="touch--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>touch</h4>
<pre>void&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.141">touch</a>()
    throws <a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block">Explicitly updates the <a href="../../../../org/apache/shiro/session/Session.html#getLastAccessTime--"><code>lastAccessTime</code></a> of this session to the current time when
 this method is invoked.  This method can be used to ensure a session does not time out.
 <p/>
 Most programmers won't use this method directly and will instead rely on the last access time to be updated
 automatically as a result of an incoming web request or remote procedure call/method invocation.
 <p/>
 However, this method is particularly useful when supporting rich-client applications such as
 Java Web Start app, Java or Flash applets, etc.  Although rare, it is possible in a rich-client
 environment that a user continuously interacts with the client-side application without a
 server-side method call ever being invoked.  If this happens over a long enough period of
 time, the user's server-side session could time-out.  Again, such cases are rare since most
 rich-clients frequently require server-side method invocations.
 <p/>
 In this example though, the user's session might still be considered valid because
 the user is actively &quot;using&quot; the application, just not communicating with the
 server. But because no server-side method calls are invoked, there is no way for the server
 to know if the user is sitting idle or not, so it must assume so to maintain session
 integrity.  This <code>touch()</code> method could be invoked by the rich-client application code during those
 times to ensure that the next time a server-side method is invoked, the invocation will not
 throw an <a href="../../../../org/apache/shiro/session/ExpiredSessionException.html" title="class in org.apache.shiro.session"><code>ExpiredSessionException</code></a>.  In short terms, it could be used periodically
 to ensure a session does not time out.
 <p/>
 How often this rich-client &quot;maintenance&quot; might occur is entirely dependent upon
 the application and would be based on variables such as session timeout configuration,
 usage characteristics of the client application, network utilization and application server
 performance.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if this session has stopped or expired prior to calling this method.</dd>
</dl>
</li>
</ul>
<a name="stop--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>void&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.160">stop</a>()
   throws <a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block">Explicitly stops (invalidates) this session and releases all associated resources.
 <p/>
 If this session has already been authenticated (i.e. the <code>Subject</code> that
 owns this session has logged-in), calling this method explicitly might have undesired side effects:
 <p/>
 It is common for a <code>Subject</code> implementation to retain authentication state in the
 <code>Session</code>.  If the session
 is explicitly stopped by application code by calling this method directly, it could clear out any
 authentication state that might exist, thereby effectively &quot;unauthenticating&quot; the <code>Subject</code>.
 <p/>
 As such, you might consider <a href="../../../../org/apache/shiro/subject/Subject.html#logout--"><code>logging-out</code></a> the 'owning'
 <code>Subject</code> instead of manually calling this method, as a log out is expected to stop the
 corresponding session automatically, and also allows framework code to execute additional cleanup logic.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if this session has stopped or expired prior to calling this method.</dd>
</dl>
</li>
</ul>
<a name="getAttributeKeys--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttributeKeys</h4>
<pre><a href="https://docs.oracle.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.171">getAttributeKeys</a>()
                             throws <a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block">Returns the keys of all the attributes stored under this session.  If there are no
 attributes, this returns an empty collection.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the keys of all attributes stored under this session, or an empty collection if
         there are no session attributes.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if this session has stopped or expired prior to calling this method.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.2</dd>
</dl>
</li>
</ul>
<a name="getAttribute-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttribute</h4>
<pre><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.183">getAttribute</a>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;key)
             throws <a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block">Returns the object bound to this session identified by the specified key.  If there is no
 object bound under the key, <code>null</code> is returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the unique name of the object bound to this session</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the object bound under the specified <code>key</code> name or <code>null</code> if there is
         no object bound under that name.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if this session has stopped or expired prior to calling
                                 this method.</dd>
</dl>
</li>
</ul>
<a name="setAttribute-java.lang.Object-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAttribute</h4>
<pre>void&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.198">setAttribute</a>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;key,
                  <a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value)
           throws <a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block">Binds the specified <code>value</code> to this session, uniquely identified by the specified
 <code>key</code> name.  If there is already an object bound under the <code>key</code> name, 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
 <a href="../../../../org/apache/shiro/session/Session.html#removeAttribute-java.lang.Object-"><code>removeAttribute</code></a> was called.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the name 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="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if this session has stopped or expired prior to calling
                                 this method.</dd>
</dl>
</li>
</ul>
<a name="removeAttribute-java.lang.Object-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>removeAttribute</h4>
<pre><a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/apache/shiro/session/Session.html#line.209">removeAttribute</a>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;key)
                throws <a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></pre>
<div class="block">Removes (unbinds) the object bound to this session under the specified <code>key</code> name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the name 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 name
         <code>key</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/shiro/session/InvalidSessionException.html" title="class in org.apache.shiro.session">InvalidSessionException</a></code> - if this session has stopped or expired prior to calling
                                 this method.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Session.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/shiro/session/ProxiedSession.html" title="class in org.apache.shiro.session"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/shiro/session/SessionException.html" title="class in org.apache.shiro.session"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/shiro/session/Session.html" target="_top">Frames</a></li>
<li><a href="Session.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2023 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
