1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity.concurrent;
17
18 /***
19 * Maintains a registry of <code>SessionInformation</code> instances.
20 *
21 * @author Ben Alex
22 * @version $Id: SessionRegistry.java,v 1.2 2005/11/17 00:55:56 benalex Exp $
23 */
24 public interface SessionRegistry {
25
26
27 /***
28 * Obtains all the known sessions for the specified principal. Sessions
29 * that have expired or destroyed are not returned.
30 *
31 * @param principal to locate sessions for (should never be
32 * <code>null</code>)
33 *
34 * @return the unexpired and undestroyed sessions for this principal, or
35 * <code>null</code> if none were found
36 */
37 public SessionInformation[] getAllSessions(Object principal);
38
39 /***
40 * Obtains the session information for the specified
41 * <code>sessionId</code>. Even expired sessions are returned (although
42 * destroyed sessions are never returned).
43 *
44 * @param sessionId to lookup (should never be <code>null</code>)
45 *
46 * @return the session information, or <code>null</code> if not found
47 */
48 public SessionInformation getSessionInformation(String sessionId);
49
50 /***
51 * Updates the given <code>sessionId</code> so its last request time is
52 * equal to the present date and time. Silently returns if the given
53 * <code>sessionId</code> cannot be found or the session is marked to expire.
54 *
55 * @param sessionId for which to update the date and time of the last
56 * request (should never be <code>null</code>)
57 */
58 public void refreshLastRequest(String sessionId);
59
60 /***
61 * Registers a new session for the specified principal. The newly
62 * registered session will not be marked for expiration.
63 *
64 * @param sessionId to associate with the principal (should never be
65 * <code>null</code>)
66 * @param principal to associate with the session (should never be
67 * <code>null</code>)
68 *
69 * @throws SessionAlreadyUsedException DOCUMENT ME!
70 */
71 public void registerNewSession(String sessionId, Object principal)
72 throws SessionAlreadyUsedException;
73
74 /***
75 * Deletes all the session information being maintained for the specified
76 * <code>sessionId</code>. If the <code>sessionId</code> is not found, the
77 * method gracefully returns.
78 *
79 * @param sessionId to delete information for (should never be
80 * <code>null</code>)
81 */
82 public void removeSessionInformation(String sessionId);
83 }