001: /*
002: * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
003: *
004: * This file is part of Resin(R) Open Source
005: *
006: * Each copy or derived work must preserve the copyright notice and this
007: * notice unmodified.
008: *
009: * Resin Open Source is free software; you can redistribute it and/or modify
010: * it under the terms of the GNU General Public License as published by
011: * the Free Software Foundation; either version 2 of the License, or
012: * (at your option) any later version.
013: *
014: * Resin Open Source is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
017: * of NON-INFRINGEMENT. See the GNU General Public License for more
018: * details.
019: *
020: * You should have received a copy of the GNU General Public License
021: * along with Resin Open Source; if not, write to the
022: *
023: * Free Software Foundation, Inc.
024: * 59 Temple Place, Suite 330
025: * Boston, MA 02111-1307 USA
026: *
027: * @author Scott Ferguson
028: */
029:
030: package com.caucho.management.server;
031:
032: import com.caucho.jmx.Description;
033: import com.caucho.jmx.Units;
034:
035: /**
036: * Administration for the SessionManager for a WebApp.
037: *
038: * The JMX name looks like:
039: * <pre>
040: * resin:type=SessionManager,WebApp=/wiki,Host=caucho.com
041: * </pre>
042: */
043: @Description("The session manager for a web-app")
044: public interface SessionManagerMXBean extends ManagedObjectMXBean {
045: //
046: // Hierarchy Attributes
047: //
048:
049: /**
050: * Returns the owning WebApp.
051: */
052: @Description("The owning WebApp for this session manager")
053: public WebAppMXBean getWebApp();
054:
055: /**
056: * Returns the persistent store.
057: */
058: @Description("The persistent store")
059: public PersistentStoreMXBean getPersistentStore();
060:
061: //
062: // Configuration attributes
063: //
064:
065: /**
066: * True if the session should be serialized for storage, even if
067: * no attributes in the session have been set.
068: */
069: @Description("The configured value, if true serialize the session on each request, even if no attributes have been set")
070: public boolean isAlwaysSaveSession();
071:
072: /**
073: * If true, the server's cluster index is appended to the cookie value.
074: */
075: @Description("The configured value, if true append the server's cluster index to the cookie value")
076: public boolean isCookieAppendServerIndex();
077:
078: /**
079: * The host domain used for session cookies
080: */
081: @Description("The configured host domain used for session cookies")
082: public String getCookieDomain();
083:
084: /**
085: * True if the cookie should only be used for http, not https requests.
086: */
087: @Description("The configured value, if true the cookie should only be used for http, not https requests")
088: public boolean isCookieHttpOnly();
089:
090: /**
091: * The length of the generated cookie
092: */
093: @Description("The configured length of the generated cookie")
094: public long getCookieLength();
095:
096: /**
097: * The session cookie max-age sent to the browser.
098: */
099: @Description("The configured session cookie max-age in milliseconds sent to the browser")
100: @Units("milliseconds")
101: public long getCookieMaxAge();
102:
103: /**
104: * The cookie name used for sessions.
105: */
106: @Description("The configured cookie name for servlet sessions")
107: public String getCookieName();
108:
109: /**
110: * The session cookie port sent to the client browser.
111: */
112: @Description("The configured session cookie port sent to the browser")
113: public String getCookiePort();
114:
115: /**
116: * True if the session cookie should only be sent on a secure connection.
117: */
118: @Description("The configured value, if true the session cookie should only be sent on a secure connection")
119: public boolean isCookieSecure();
120:
121: /**
122: * The cookie version sent to the browser.
123: */
124: @Description("The configured cookie version sent to the browser")
125: public int getCookieVersion();
126:
127: /**
128: * True if the server reads and writes cookies
129: */
130: @Description("The configured value, if true session cookies are enabled")
131: public boolean isEnableCookies();
132:
133: /**
134: * (discouraged). True if the URL-rewriting is enabled.
135: * In general, URL-rewriting should be avoided as a security risk.
136: */
137: @Description("The configured value, if true (discouraged) URL-rewriting is enabled. URL-rewriting should be avoided as a security risk.")
138: public boolean isEnableURLRewriting();
139:
140: /**
141: * True if persistent sessions should ignore serialization errors.
142: */
143: @Description("The configured value, if true persistent sessions should ignore serialization errors.")
144: public boolean isIgnoreSerializationErrors();
145:
146: /**
147: * True if the session should be invalidated only after listeners are
148: * called.
149: */
150: @Description("The configured value, if true the session should be invalidated only after listeners are called")
151: public boolean isInvalidateAfterListener();
152:
153: /**
154: * True if session-id should be reused if no session exists. This
155: * should generally be true for web-app consistence.
156: */
157: @Description("The configured value, if true the session-id should be reused if no session exists to match the cookie. This should generally be true to ensure web-app session consistency")
158: public boolean isReuseSessionId();
159:
160: /**
161: * Returns the session save-mode.
162: */
163: @Description("The configured session persistence mode. The session save-mode is one of: " + "before-headers, after-request, on-shutdown")
164: public String getSaveMode();
165:
166: /**
167: * The maximum number of sessions in memory. The number
168: * of persistent sessions may be larger.
169: */
170: @Description("The configured maximum number of sessions in memory. The number of persistent sessions may be larger")
171: public int getSessionMax();
172:
173: /**
174: * The maximum time an idle session will be saved. session-timeout affects
175: * persistent sessions.
176: */
177: @Description("The configured time in milliseconds before an idle session is destroyed")
178: @Units("milliseconds")
179: public long getSessionTimeout();
180:
181: //
182: // statistics
183: //
184:
185: /**
186: * Returns the count of active sessions.
187: */
188: @Description("The current number of active sessions")
189: public long getSessionActiveCount();
190:
191: /**
192: * Returns the count of sessions created
193: */
194: @Description("The total number of sessions that have been created")
195: public long getSessionCreateCountTotal();
196:
197: /**
198: * Returns the count of sessions invalidated
199: */
200: @Description("The total number of sessions that have been invalidated")
201: public long getSessionInvalidateCountTotal();
202:
203: /**
204: * Returns the count of sessions timeout
205: */
206: @Description("The total number of times a session has timed out")
207: public long getSessionTimeoutCountTotal();
208: }
|