| <!DOCTYPE HTML> |
| <html lang="fr"> |
| <head> |
| <title>Source code</title> |
| <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style"> |
| </head> |
| <body> |
| <main role="main"> |
| <div class="sourceContainer"> |
| <pre><span class="sourceLineNo">001</span><a id="line.1">/*</a> |
| <span class="sourceLineNo">002</span><a id="line.2"> * Copyright 2008 Les Hazlewood</a> |
| <span class="sourceLineNo">003</span><a id="line.3"> *</a> |
| <span class="sourceLineNo">004</span><a id="line.4"> * Licensed under the Apache License, Version 2.0 (the "License");</a> |
| <span class="sourceLineNo">005</span><a id="line.5"> * you may not use this file except in compliance with the License.</a> |
| <span class="sourceLineNo">006</span><a id="line.6"> * You may obtain a copy of the License at</a> |
| <span class="sourceLineNo">007</span><a id="line.7"> *</a> |
| <span class="sourceLineNo">008</span><a id="line.8"> * http://www.apache.org/licenses/LICENSE-2.0</a> |
| <span class="sourceLineNo">009</span><a id="line.9"> *</a> |
| <span class="sourceLineNo">010</span><a id="line.10"> * Unless required by applicable law or agreed to in writing, software</a> |
| <span class="sourceLineNo">011</span><a id="line.11"> * distributed under the License is distributed on an "AS IS" BASIS,</a> |
| <span class="sourceLineNo">012</span><a id="line.12"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</a> |
| <span class="sourceLineNo">013</span><a id="line.13"> * See the License for the specific language governing permissions and</a> |
| <span class="sourceLineNo">014</span><a id="line.14"> * limitations under the License.</a> |
| <span class="sourceLineNo">015</span><a id="line.15"> */</a> |
| <span class="sourceLineNo">016</span><a id="line.16">package org.apache.shiro.session.mgt;</a> |
| <span class="sourceLineNo">017</span><a id="line.17"></a> |
| <span class="sourceLineNo">018</span><a id="line.18">import org.apache.shiro.session.InvalidSessionException;</a> |
| <span class="sourceLineNo">019</span><a id="line.19"></a> |
| <span class="sourceLineNo">020</span><a id="line.20">import java.util.Collection;</a> |
| <span class="sourceLineNo">021</span><a id="line.21">import java.util.Date;</a> |
| <span class="sourceLineNo">022</span><a id="line.22"></a> |
| <span class="sourceLineNo">023</span><a id="line.23">/**</a> |
| <span class="sourceLineNo">024</span><a id="line.24"> * A {@code Native} session manager is one that manages sessions natively - that is, it is directly responsible</a> |
| <span class="sourceLineNo">025</span><a id="line.25"> * for the creation, persistence and removal of {@link org.apache.shiro.session.Session Session} instances and their</a> |
| <span class="sourceLineNo">026</span><a id="line.26"> * lifecycles.</a> |
| <span class="sourceLineNo">027</span><a id="line.27"> *</a> |
| <span class="sourceLineNo">028</span><a id="line.28"> * @since 1.0</a> |
| <span class="sourceLineNo">029</span><a id="line.29"> */</a> |
| <span class="sourceLineNo">030</span><a id="line.30">public interface NativeSessionManager extends SessionManager {</a> |
| <span class="sourceLineNo">031</span><a id="line.31"></a> |
| <span class="sourceLineNo">032</span><a id="line.32"> /**</a> |
| <span class="sourceLineNo">033</span><a id="line.33"> * Returns the time the associated {@code Session} started (was created).</a> |
| <span class="sourceLineNo">034</span><a id="line.34"> *</a> |
| <span class="sourceLineNo">035</span><a id="line.35"> * @param key the session key to use to look up the target session.</a> |
| <span class="sourceLineNo">036</span><a id="line.36"> * @return the time the specified {@code Session} started (was created).</a> |
| <span class="sourceLineNo">037</span><a id="line.37"> * @see org.apache.shiro.session.Session#getStartTimestamp()</a> |
| <span class="sourceLineNo">038</span><a id="line.38"> */</a> |
| <span class="sourceLineNo">039</span><a id="line.39"> Date getStartTimestamp(SessionKey key);</a> |
| <span class="sourceLineNo">040</span><a id="line.40"></a> |
| <span class="sourceLineNo">041</span><a id="line.41"> /**</a> |
| <span class="sourceLineNo">042</span><a id="line.42"> * Returns the time the associated {@code Session} last interacted with the system.</a> |
| <span class="sourceLineNo">043</span><a id="line.43"> *</a> |
| <span class="sourceLineNo">044</span><a id="line.44"> * @param key the session key to use to look up the target session.</a> |
| <span class="sourceLineNo">045</span><a id="line.45"> * @return time the session last accessed the system</a> |
| <span class="sourceLineNo">046</span><a id="line.46"> * @see org.apache.shiro.session.Session#getLastAccessTime()</a> |
| <span class="sourceLineNo">047</span><a id="line.47"> * @see org.apache.shiro.session.Session#touch()</a> |
| <span class="sourceLineNo">048</span><a id="line.48"> */</a> |
| <span class="sourceLineNo">049</span><a id="line.49"> Date getLastAccessTime(SessionKey key);</a> |
| <span class="sourceLineNo">050</span><a id="line.50"></a> |
| <span class="sourceLineNo">051</span><a id="line.51"> /**</a> |
| <span class="sourceLineNo">052</span><a id="line.52"> * Returns {@code true} if the associated session is valid (it exists and is not stopped nor expired),</a> |
| <span class="sourceLineNo">053</span><a id="line.53"> * {@code false} otherwise.</a> |
| <span class="sourceLineNo">054</span><a id="line.54"> *</a> |
| <span class="sourceLineNo">055</span><a id="line.55"> * @param key the session key to use to look up the target session.</a> |
| <span class="sourceLineNo">056</span><a id="line.56"> * @return {@code true} if the session is valid (exists and is not stopped or expired), {@code false} otherwise.</a> |
| <span class="sourceLineNo">057</span><a id="line.57"> */</a> |
| <span class="sourceLineNo">058</span><a id="line.58"> boolean isValid(SessionKey key);</a> |
| <span class="sourceLineNo">059</span><a id="line.59"></a> |
| <span class="sourceLineNo">060</span><a id="line.60"> /**</a> |
| <span class="sourceLineNo">061</span><a id="line.61"> * Returns quietly if the associated session is valid (it exists and is not stopped or expired) or throws</a> |
| <span class="sourceLineNo">062</span><a id="line.62"> * an {@link org.apache.shiro.session.InvalidSessionException} indicating that the session id is invalid. This</a> |
| <span class="sourceLineNo">063</span><a id="line.63"> * might be preferred to be used instead of {@link #isValid} since any exception thrown will definitively explain</a> |
| <span class="sourceLineNo">064</span><a id="line.64"> * the reason for invalidation.</a> |
| <span class="sourceLineNo">065</span><a id="line.65"> *</a> |
| <span class="sourceLineNo">066</span><a id="line.66"> * @param key the session key to use to look up the target session.</a> |
| <span class="sourceLineNo">067</span><a id="line.67"> * @throws org.apache.shiro.session.InvalidSessionException</a> |
| <span class="sourceLineNo">068</span><a id="line.68"> * if the session id is invalid (it does not exist or it is stopped or expired).</a> |
| <span class="sourceLineNo">069</span><a id="line.69"> */</a> |
| <span class="sourceLineNo">070</span><a id="line.70"> void checkValid(SessionKey key) throws InvalidSessionException;</a> |
| <span class="sourceLineNo">071</span><a id="line.71"></a> |
| <span class="sourceLineNo">072</span><a id="line.72"> /**</a> |
| <span class="sourceLineNo">073</span><a id="line.73"> * Returns the time in milliseconds that the associated session may remain idle before expiring.</a> |
| <span class="sourceLineNo">074</span><a id="line.74"> * <ul></a> |
| <span class="sourceLineNo">075</span><a id="line.75"> * <li>A negative return value means the session will never expire.</li></a> |
| <span class="sourceLineNo">076</span><a id="line.76"> * <li>A non-negative return value (0 or greater) means the session expiration will occur if idle for that</a> |
| <span class="sourceLineNo">077</span><a id="line.77"> * length of time.</li></a> |
| <span class="sourceLineNo">078</span><a id="line.78"> * </ul></a> |
| <span class="sourceLineNo">079</span><a id="line.79"> *</a> |
| <span class="sourceLineNo">080</span><a id="line.80"> * @param key the session key to use to look up the target session.</a> |
| <span class="sourceLineNo">081</span><a id="line.81"> * @return the time in milliseconds that the associated session may remain idle before expiring.</a> |
| <span class="sourceLineNo">082</span><a id="line.82"> * @throws org.apache.shiro.session.InvalidSessionException</a> |
| <span class="sourceLineNo">083</span><a id="line.83"> * if the session has been stopped or expired prior to calling this method.</a> |
| <span class="sourceLineNo">084</span><a id="line.84"> */</a> |
| <span class="sourceLineNo">085</span><a id="line.85"> long getTimeout(SessionKey key) throws InvalidSessionException;</a> |
| <span class="sourceLineNo">086</span><a id="line.86"></a> |
| <span class="sourceLineNo">087</span><a id="line.87"> /**</a> |
| <span class="sourceLineNo">088</span><a id="line.88"> * Sets the time in milliseconds that the associated session may remain idle before expiring.</a> |
| <span class="sourceLineNo">089</span><a id="line.89"> * <ul></a> |
| <span class="sourceLineNo">090</span><a id="line.90"> * <li>A negative return value means the session will never expire.</li></a> |
| <span class="sourceLineNo">091</span><a id="line.91"> * <li>A non-negative return value (0 or greater) means the session expiration will occur if idle for that</a> |
| <span class="sourceLineNo">092</span><a id="line.92"> * length of time.</li></a> |
| <span class="sourceLineNo">093</span><a id="line.93"> * </ul></a> |
| <span class="sourceLineNo">094</span><a id="line.94"> *</a> |
| <span class="sourceLineNo">095</span><a id="line.95"> * @param key the session key to use to look up the target session.</a> |
| <span class="sourceLineNo">096</span><a id="line.96"> * @param maxIdleTimeInMillis the time in milliseconds that the associated session may remain idle before expiring.</a> |
| <span class="sourceLineNo">097</span><a id="line.97"> * @throws org.apache.shiro.session.InvalidSessionException</a> |
| <span class="sourceLineNo">098</span><a id="line.98"> * if the session has been stopped or expired prior to calling this method.</a> |
| <span class="sourceLineNo">099</span><a id="line.99"> */</a> |
| <span class="sourceLineNo">100</span><a id="line.100"> void setTimeout(SessionKey key, long maxIdleTimeInMillis) throws InvalidSessionException;</a> |
| <span class="sourceLineNo">101</span><a id="line.101"></a> |
| <span class="sourceLineNo">102</span><a id="line.102"> /**</a> |
| <span class="sourceLineNo">103</span><a id="line.103"> * Updates the last accessed time of the session identified by <code>sessionId</code>. This</a> |
| <span class="sourceLineNo">104</span><a id="line.104"> * can be used to explicitly ensure that a session does not time out.</a> |
| <span class="sourceLineNo">105</span><a id="line.105"> *</a> |
| <span class="sourceLineNo">106</span><a id="line.106"> * @param key the session key to use to look up the target session.</a> |
| <span class="sourceLineNo">107</span><a id="line.107"> * @throws org.apache.shiro.session.InvalidSessionException</a> |
| <span class="sourceLineNo">108</span><a id="line.108"> * if the session has been stopped or expired prior to calling this method.</a> |
| <span class="sourceLineNo">109</span><a id="line.109"> * @see org.apache.shiro.session.Session#touch</a> |
| <span class="sourceLineNo">110</span><a id="line.110"> */</a> |
| <span class="sourceLineNo">111</span><a id="line.111"> void touch(SessionKey key) throws InvalidSessionException;</a> |
| <span class="sourceLineNo">112</span><a id="line.112"></a> |
| <span class="sourceLineNo">113</span><a id="line.113"> /**</a> |
| <span class="sourceLineNo">114</span><a id="line.114"> * Returns the host name or IP string of the host where the session was started, if known. If</a> |
| <span class="sourceLineNo">115</span><a id="line.115"> * no host name or IP was specified when starting the session, this method returns {@code null}</a> |
| <span class="sourceLineNo">116</span><a id="line.116"> *</a> |
| <span class="sourceLineNo">117</span><a id="line.117"> * @param key the session key to use to look up the target session.</a> |
| <span class="sourceLineNo">118</span><a id="line.118"> * @return the host name or ip address of the host where the session originated, if known. If unknown,</a> |
| <span class="sourceLineNo">119</span><a id="line.119"> * this method returns {@code null}.</a> |
| <span class="sourceLineNo">120</span><a id="line.120"> */</a> |
| <span class="sourceLineNo">121</span><a id="line.121"> String getHost(SessionKey key);</a> |
| <span class="sourceLineNo">122</span><a id="line.122"></a> |
| <span class="sourceLineNo">123</span><a id="line.123"> /**</a> |
| <span class="sourceLineNo">124</span><a id="line.124"> * Explicitly stops the associated session, thereby releasing all of its resources.</a> |
| <span class="sourceLineNo">125</span><a id="line.125"> *</a> |
| <span class="sourceLineNo">126</span><a id="line.126"> * @param key the session key to use to look up the target session.</a> |
| <span class="sourceLineNo">127</span><a id="line.127"> * @throws InvalidSessionException if the session has stopped or expired prior to calling this method.</a> |
| <span class="sourceLineNo">128</span><a id="line.128"> * @see org.apache.shiro.session.Session#stop</a> |
| <span class="sourceLineNo">129</span><a id="line.129"> */</a> |
| <span class="sourceLineNo">130</span><a id="line.130"> void stop(SessionKey key) throws InvalidSessionException;</a> |
| <span class="sourceLineNo">131</span><a id="line.131"></a> |
| <span class="sourceLineNo">132</span><a id="line.132"> /**</a> |
| <span class="sourceLineNo">133</span><a id="line.133"> * Returns all attribute keys maintained by the target session or an empty collection if there are no attributes.</a> |
| <span class="sourceLineNo">134</span><a id="line.134"> *</a> |
| <span class="sourceLineNo">135</span><a id="line.135"> * @param sessionKey the session key to use to look up the target session.</a> |
| <span class="sourceLineNo">136</span><a id="line.136"> * @return all attribute keys maintained by the target session or an empty collection if there are no attributes.</a> |
| <span class="sourceLineNo">137</span><a id="line.137"> * @throws InvalidSessionException if the associated session has stopped or expired prior to calling this method.</a> |
| <span class="sourceLineNo">138</span><a id="line.138"> * @see org.apache.shiro.session.Session#getAttributeKeys()</a> |
| <span class="sourceLineNo">139</span><a id="line.139"> */</a> |
| <span class="sourceLineNo">140</span><a id="line.140"> Collection<Object> getAttributeKeys(SessionKey sessionKey);</a> |
| <span class="sourceLineNo">141</span><a id="line.141"></a> |
| <span class="sourceLineNo">142</span><a id="line.142"> /**</a> |
| <span class="sourceLineNo">143</span><a id="line.143"> * Returns the object bound to the associated session identified by the specified attribute key. If there</a> |
| <span class="sourceLineNo">144</span><a id="line.144"> * is no object bound under the attribute key for the given session, {@code null} is returned.</a> |
| <span class="sourceLineNo">145</span><a id="line.145"> *</a> |
| <span class="sourceLineNo">146</span><a id="line.146"> * @param sessionKey session key to use to look up the target session.</a> |
| <span class="sourceLineNo">147</span><a id="line.147"> * @param attributeKey the unique name of the object bound to the associated session</a> |
| <span class="sourceLineNo">148</span><a id="line.148"> * @return the object bound under the {@code attributeKey} or {@code null} if there is no object bound.</a> |
| <span class="sourceLineNo">149</span><a id="line.149"> * @throws InvalidSessionException if the specified session has stopped or expired prior to calling this method.</a> |
| <span class="sourceLineNo">150</span><a id="line.150"> * @see org.apache.shiro.session.Session#getAttribute(Object key)</a> |
| <span class="sourceLineNo">151</span><a id="line.151"> */</a> |
| <span class="sourceLineNo">152</span><a id="line.152"> Object getAttribute(SessionKey sessionKey, Object attributeKey) throws InvalidSessionException;</a> |
| <span class="sourceLineNo">153</span><a id="line.153"></a> |
| <span class="sourceLineNo">154</span><a id="line.154"> /**</a> |
| <span class="sourceLineNo">155</span><a id="line.155"> * Binds the specified {@code value} to the associated session uniquely identified by the {@code attributeKey}.</a> |
| <span class="sourceLineNo">156</span><a id="line.156"> * If there is already a session attribute bound under the {@code attributeKey}, that existing object will be</a> |
| <span class="sourceLineNo">157</span><a id="line.157"> * replaced by the new {@code value}.</a> |
| <span class="sourceLineNo">158</span><a id="line.158"> * <p/></a> |
| <span class="sourceLineNo">159</span><a id="line.159"> * If the {@code value} parameter is null, it has the same effect as if the</a> |
| <span class="sourceLineNo">160</span><a id="line.160"> * {@link #removeAttribute(SessionKey sessionKey, Object attributeKey)} method was called.</a> |
| <span class="sourceLineNo">161</span><a id="line.161"> *</a> |
| <span class="sourceLineNo">162</span><a id="line.162"> * @param sessionKey the session key to use to look up the target session.</a> |
| <span class="sourceLineNo">163</span><a id="line.163"> * @param attributeKey the key under which the {@code value} object will be bound in this session</a> |
| <span class="sourceLineNo">164</span><a id="line.164"> * @param value the object to bind in this session.</a> |
| <span class="sourceLineNo">165</span><a id="line.165"> * @throws InvalidSessionException if the specified session has stopped or expired prior to calling this method.</a> |
| <span class="sourceLineNo">166</span><a id="line.166"> * @see org.apache.shiro.session.Session#setAttribute(Object key, Object value)</a> |
| <span class="sourceLineNo">167</span><a id="line.167"> */</a> |
| <span class="sourceLineNo">168</span><a id="line.168"> void setAttribute(SessionKey sessionKey, Object attributeKey, Object value) throws InvalidSessionException;</a> |
| <span class="sourceLineNo">169</span><a id="line.169"></a> |
| <span class="sourceLineNo">170</span><a id="line.170"> /**</a> |
| <span class="sourceLineNo">171</span><a id="line.171"> * Removes (unbinds) the object bound to associated {@code Session} under the given {@code attributeKey}.</a> |
| <span class="sourceLineNo">172</span><a id="line.172"> *</a> |
| <span class="sourceLineNo">173</span><a id="line.173"> * @param sessionKey session key to use to look up the target session.</a> |
| <span class="sourceLineNo">174</span><a id="line.174"> * @param attributeKey the key uniquely identifying the object to remove</a> |
| <span class="sourceLineNo">175</span><a id="line.175"> * @return the object removed or {@code null} if there was no object bound under the specified {@code attributeKey}.</a> |
| <span class="sourceLineNo">176</span><a id="line.176"> * @throws InvalidSessionException if the specified session has stopped or expired prior to calling this method.</a> |
| <span class="sourceLineNo">177</span><a id="line.177"> * @see org.apache.shiro.session.Session#removeAttribute(Object key)</a> |
| <span class="sourceLineNo">178</span><a id="line.178"> */</a> |
| <span class="sourceLineNo">179</span><a id="line.179"> Object removeAttribute(SessionKey sessionKey, Object attributeKey) throws InvalidSessionException;</a> |
| <span class="sourceLineNo">180</span><a id="line.180"></a> |
| <span class="sourceLineNo">181</span><a id="line.181">}</a> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| </pre> |
| </div> |
| </main> |
| </body> |
| </html> |