01: /*
02: * JOSSO: Java Open Single Sign-On
03: *
04: * Copyright 2004-2008, Atricore, Inc.
05: *
06: * This is free software; you can redistribute it and/or modify it
07: * under the terms of the GNU Lesser General Public License as
08: * published by the Free Software Foundation; either version 2.1 of
09: * the License, or (at your option) any later version.
10: *
11: * This software is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this software; if not, write to the Free
18: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
20: */
21: package org.josso.gateway.session;
22:
23: import java.io.Serializable;
24:
25: /**
26: * @author <a href="mailto:sgonzalez@josso.org">Sebastian Gonzalez Oyuela</a>
27: * @version $Id: SSOSession.java 508 2008-02-18 13:32:29Z sgonzalez $
28: */
29:
30: public interface SSOSession extends Serializable {
31:
32: /**
33: * The SessionEvent event type when a session is created.
34: */
35: public static final String SESSION_CREATED_EVENT = "createSession";
36:
37: /**
38: * The SessionEvent event type when a session is destroyed.
39: */
40: public static final String SESSION_DESTROYED_EVENT = "destroySession";
41:
42: /**
43: * Gets the sso session identifier.
44: */
45: String getId();
46:
47: /**
48: * Indicates if this is a valid session.
49: */
50: boolean isValid();
51:
52: /**
53: * Set the maximum time interval, in seconds, between client requests
54: * before the SSO Service will invalidate the session. A negative
55: * time indicates that the session should never time out.
56: *
57: * @param interval The new maximum interval in seconds
58: */
59: void setMaxInactiveInterval(int interval);
60:
61: /**
62: * Set the maximum time interval, in seconds, between client requests
63: * before the SSO Service will invalidate the session. A negative
64: * time indicates that the session should never time out.
65: */
66: int getMaxInactiveInterval();
67:
68: /**
69: * Gets this session creation time in milliseconds.
70: */
71: long getCreationTime();
72:
73: /**
74: * Sends a session event.
75: */
76: void fireSessionEvent(String type, Object data);
77:
78: /**
79: * Gets this session last access time in milliseconds.
80: */
81: long getLastAccessTime();
82:
83: /**
84: * Gets this session access count.
85: */
86: long getAccessCount();
87:
88: /**
89: * Getter for the username associated to this session.
90: */
91: String getUsername();
92: }
|