|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eclipse.jetty.util.component.AbstractLifeCycle org.eclipse.jetty.server.session.AbstractSessionManager
public abstract class AbstractSessionManager
An Abstract implementation of SessionManager. The partial implementation of SessionManager interface provides the majority of the handling required to implement a SessionManager. Concrete implementations of SessionManager based on AbstractSessionManager need only implement the newSession method to return a specialised version of the Session inner class that provides an attribute Map.
Nested Class Summary | |
---|---|
static class |
AbstractSessionManager.NullSessionContext
Null returning implementation of HttpSessionContext |
class |
AbstractSessionManager.Session
Implements HttpSession from the javax.servlet package. |
static interface |
AbstractSessionManager.SessionIf
Interface that any session wrapper should implement so that SessionManager may access the Jetty session implementation. |
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle |
---|
AbstractLifeCycle.AbstractLifeCycleListener |
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle |
---|
LifeCycle.Listener |
Field Summary | |
---|---|
static int |
__distantFuture
|
protected boolean |
_checkingRemoteSessionIdEncoding
|
protected ContextHandler.Context |
_context
|
protected int |
_dftMaxIdleSecs
|
protected boolean |
_httpOnly
|
protected ClassLoader |
_loader
|
protected int |
_maxCookieAge
|
protected boolean |
_nodeIdInSessionId
|
protected int |
_refreshCookieAge
|
protected boolean |
_secureCookies
|
protected Object |
_sessionAttributeListeners
|
protected String |
_sessionCookie
|
protected String |
_sessionDomain
|
protected SessionHandler |
_sessionHandler
|
protected SessionIdManager |
_sessionIdManager
|
protected String |
_sessionIdPathParameterName
|
protected String |
_sessionIdPathParameterNamePrefix
|
protected Object |
_sessionListeners
|
protected String |
_sessionPath
|
protected CounterStatistic |
_sessionsStats
|
protected SampleStatistic |
_sessionTimeStats
|
Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle |
---|
_listeners, FAILED, RUNNING, STARTED, STARTING, STOPPED, STOPPING |
Fields inherited from interface org.eclipse.jetty.server.SessionManager |
---|
__CheckRemoteSessionEncoding, __DefaultSessionCookie, __DefaultSessionDomain, __DefaultSessionIdPathParameterName, __MaxAgeProperty, __SessionCookieProperty, __SessionDomainProperty, __SessionIdPathParameterNameProperty, __SessionPathProperty |
Constructor Summary | |
---|---|
AbstractSessionManager()
|
Method Summary | |
---|---|
HttpCookie |
access(HttpSession session,
boolean secure)
Called by the SessionHandler when a session is first accessed by a request. |
void |
addEventListener(EventListener listener)
Adds an event listener for session-related events. |
protected abstract void |
addSession(AbstractSessionManager.Session session)
|
protected void |
addSession(AbstractSessionManager.Session session,
boolean created)
Add the session Registers the session with this manager and registers the session ID with the sessionIDManager; |
void |
clearEventListeners()
Removes all event listeners for session-related events. |
void |
complete(HttpSession session)
Called by the SessionHandler when a session is last accessed by a request. |
void |
doStart()
|
void |
doStop()
|
String |
getClusterId(HttpSession session)
|
boolean |
getHttpOnly()
|
HttpSession |
getHttpSession(String nodeId)
Returns the HttpSession with the given session id |
SessionIdManager |
getIdManager()
|
int |
getMaxCookieAge()
|
int |
getMaxInactiveInterval()
|
int |
getMaxSessions()
Deprecated. |
SessionIdManager |
getMetaManager()
Deprecated. use getIdManager() |
int |
getMinSessions()
Deprecated. always returns 0. no replacement available. |
String |
getNodeId(HttpSession session)
|
int |
getRefreshCookieAge()
|
boolean |
getSecureCookies()
|
abstract AbstractSessionManager.Session |
getSession(String idInCluster)
Get a known existing session |
String |
getSessionCookie()
|
HttpCookie |
getSessionCookie(HttpSession session,
String contextPath,
boolean requestIsSecure)
Gets a Cookie for a session. |
String |
getSessionDomain()
|
SessionHandler |
getSessionHandler()
|
String |
getSessionIdPathParameterName()
|
String |
getSessionIdPathParameterNamePrefix()
|
abstract Map |
getSessionMap()
Deprecated. Need to review if it is needed. |
String |
getSessionPath()
|
int |
getSessions()
|
int |
getSessionsMax()
|
int |
getSessionsTotal()
|
long |
getSessionTimeMax()
|
double |
getSessionTimeMean()
|
double |
getSessionTimeStdDev()
|
long |
getSessionTimeTotal()
|
protected abstract void |
invalidateSessions()
|
boolean |
isCheckingRemoteSessionIdEncoding()
|
boolean |
isNodeIdInSessionId()
|
boolean |
isUsingCookies()
|
boolean |
isValid(HttpSession session)
|
HttpSession |
newHttpSession(HttpServletRequest request)
Create a new HttpSession for a request |
protected abstract AbstractSessionManager.Session |
newSession(HttpServletRequest request)
Create a new session instance |
void |
removeEventListener(EventListener listener)
Removes an event listener for for session-related events. |
void |
removeSession(AbstractSessionManager.Session session,
boolean invalidate)
Remove session from manager |
void |
removeSession(HttpSession session,
boolean invalidate)
Remove session from manager |
protected abstract boolean |
removeSession(String idInCluster)
|
void |
resetStats()
Deprecated. |
void |
setCheckingRemoteSessionIdEncoding(boolean remote)
|
void |
setHttpOnly(boolean httpOnly)
|
void |
setIdManager(SessionIdManager metaManager)
Sets the cross context session id manager |
void |
setMaxCookieAge(int maxCookieAgeInSeconds)
Sets the max age to set on the session cookie, in seconds |
void |
setMaxInactiveInterval(int seconds)
Sets the max period of inactivity, after which the session is invalidated, in seconds. |
void |
setMetaManager(SessionIdManager metaManager)
Deprecated. use setIdManager(SessionIdManager) |
void |
setNodeIdInSessionId(boolean nodeIdInSessionId)
|
void |
setRefreshCookieAge(int ageInSeconds)
|
void |
setSecureCookies(boolean secureCookies)
Set if the session manager should use SecureCookies. |
void |
setSessionCookie(String cookieName)
Sets the session cookie name. |
void |
setSessionDomain(String domain)
Sets the domain to set on the session cookie |
void |
setSessionHandler(SessionHandler sessionHandler)
Sets the SessionHandler . |
void |
setSessionIdPathParameterName(String param)
Sets the session id URL path parameter name. |
void |
setSessionPath(String path)
Sets the path to set on the session cookie |
void |
setUsingCookies(boolean usingCookies)
|
void |
statsReset()
Reset statistics values |
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle |
---|
addLifeCycleListener, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle |
---|
addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop |
Field Detail |
---|
public static final int __distantFuture
protected int _dftMaxIdleSecs
protected SessionHandler _sessionHandler
protected boolean _httpOnly
protected SessionIdManager _sessionIdManager
protected boolean _secureCookies
protected Object _sessionAttributeListeners
protected Object _sessionListeners
protected ClassLoader _loader
protected ContextHandler.Context _context
protected String _sessionCookie
protected String _sessionIdPathParameterName
protected String _sessionIdPathParameterNamePrefix
protected String _sessionDomain
protected String _sessionPath
protected int _maxCookieAge
protected int _refreshCookieAge
protected boolean _nodeIdInSessionId
protected boolean _checkingRemoteSessionIdEncoding
protected final CounterStatistic _sessionsStats
protected final SampleStatistic _sessionTimeStats
Constructor Detail |
---|
public AbstractSessionManager()
Method Detail |
---|
public HttpCookie access(HttpSession session, boolean secure)
SessionManager
SessionHandler
when a session is first accessed by a request.
access
in interface SessionManager
session
- the session objectsecure
- whether the request is secure or not
SessionManager.complete(HttpSession)
public void addEventListener(EventListener listener)
SessionManager
addEventListener
in interface SessionManager
listener
- the session event listener to add
Individual SessionManagers implementations may accept arbitrary listener types,
but they are expected to at least handle HttpSessionActivationListener,
HttpSessionAttributeListener, HttpSessionBindingListener and HttpSessionListener.SessionManager.removeEventListener(EventListener)
public void clearEventListeners()
SessionManager
clearEventListeners
in interface SessionManager
SessionManager.removeEventListener(EventListener)
public void complete(HttpSession session)
SessionManager
SessionHandler
when a session is last accessed by a request.
complete
in interface SessionManager
session
- the session objectSessionManager.access(HttpSession, boolean)
public void doStart() throws Exception
doStart
in class AbstractLifeCycle
Exception
public void doStop() throws Exception
doStop
in class AbstractLifeCycle
Exception
public boolean getHttpOnly()
getHttpOnly
in interface SessionManager
HttpCookie.isHttpOnly()
public HttpSession getHttpSession(String nodeId)
SessionManager
HttpSession
with the given session id
getHttpSession
in interface SessionManager
nodeId
- the session id
HttpSession
with the corresponding id or null if no session with the given id existspublic SessionIdManager getIdManager()
getIdManager
in interface SessionManager
SessionManager.setIdManager(SessionIdManager)
public int getMaxCookieAge()
getMaxCookieAge
in interface SessionManager
SessionManager.setMaxCookieAge(int)
public int getMaxInactiveInterval()
getMaxInactiveInterval
in interface SessionManager
SessionManager.setMaxInactiveInterval(int)
@Deprecated public int getMaxSessions()
getSessionsMax()
public int getSessionsMax()
public int getSessionsTotal()
@Deprecated public SessionIdManager getMetaManager()
getIdManager()
getMetaManager
in interface SessionManager
@Deprecated public int getMinSessions()
public int getRefreshCookieAge()
public boolean getSecureCookies()
getSecureCookies
in interface SessionManager
public String getSessionCookie()
getSessionCookie
in interface SessionManager
SessionManager.setSessionCookie(String)
public HttpCookie getSessionCookie(HttpSession session, String contextPath, boolean requestIsSecure)
SessionManager
getSessionCookie
in interface SessionManager
session
- the session to which the cookie should refer.contextPath
- the context to which the cookie should be linked.
The client will only send the cookie value when requesting resources under this path.requestIsSecure
- whether the client is accessing the server over a secure protocol (i.e. HTTPS).
SessionManager
uses cookies, then this method will return a new
cookie object
that should be set on the client in order to link future HTTP requests
with the session
. If cookies are not in use, this method returns null
.public String getSessionDomain()
getSessionDomain
in interface SessionManager
SessionManager.setSessionDomain(String)
public SessionHandler getSessionHandler()
public abstract Map getSessionMap()
public String getSessionPath()
getSessionPath
in interface SessionManager
SessionManager.setSessionPath(String)
public int getSessions()
public String getSessionIdPathParameterName()
getSessionIdPathParameterName
in interface SessionManager
SessionManager.setSessionIdPathParameterName(String)
public String getSessionIdPathParameterNamePrefix()
getSessionIdPathParameterNamePrefix
in interface SessionManager
SessionManager.getSessionIdPathParameterName()
, by default
";" + sessionIdParameterName + "=", for easier lookup in URL strings.SessionManager.getSessionIdPathParameterName()
public boolean isUsingCookies()
isUsingCookies
in interface SessionManager
public boolean isValid(HttpSession session)
isValid
in interface SessionManager
session
- the session to test for validity
public String getClusterId(HttpSession session)
getClusterId
in interface SessionManager
session
- the session object
SessionManager.getNodeId(HttpSession)
public String getNodeId(HttpSession session)
getNodeId
in interface SessionManager
session
- the session object
SessionManager.getClusterId(HttpSession)
public HttpSession newHttpSession(HttpServletRequest request)
newHttpSession
in interface SessionManager
request
- the HttpServletRequest containing the requested session id
HttpSession
public void removeEventListener(EventListener listener)
SessionManager
removeEventListener
in interface SessionManager
listener
- the session event listener to removeSessionManager.addEventListener(EventListener)
@Deprecated public void resetStats()
statsReset()
public void statsReset()
public void setHttpOnly(boolean httpOnly)
httpOnly
- The httpOnly to set.public void setIdManager(SessionIdManager metaManager)
SessionManager
setIdManager
in interface SessionManager
metaManager
- The metaManager used for cross context session management.SessionManager.getIdManager()
public void setMaxCookieAge(int maxCookieAgeInSeconds)
SessionManager
setMaxCookieAge
in interface SessionManager
maxCookieAgeInSeconds
- the max age to set on the session cookie, in secondsSessionManager.getMaxCookieAge()
public void setMaxInactiveInterval(int seconds)
SessionManager
setMaxInactiveInterval
in interface SessionManager
seconds
- SessionManager.getMaxInactiveInterval()
@Deprecated public void setMetaManager(SessionIdManager metaManager)
setIdManager(SessionIdManager)
public void setRefreshCookieAge(int ageInSeconds)
public void setSecureCookies(boolean secureCookies)
ServletRequest.isSecure()
method must return true.
If SSL offload is used, then the AbstractConnector.customize(org.eclipse.jetty.io.EndPoint, Request)
method can be used to force the request to be https, or the AbstractConnector.setForwarded(boolean)
can be set to true, so that the X-Forwarded-Proto header is respected.
If secure session cookies are used, then a session may not be shared between http and https requests.
secureCookies
- If true, use secure cookies.public void setSessionCookie(String cookieName)
SessionManager
setSessionCookie
in interface SessionManager
cookieName
- the session cookie nameSessionManager.getSessionCookie()
public void setSessionDomain(String domain)
SessionManager
setSessionDomain
in interface SessionManager
domain
- the domain to set on the session cookieSessionManager.getSessionDomain()
public void setSessionHandler(SessionHandler sessionHandler)
SessionManager
SessionHandler
.
setSessionHandler
in interface SessionManager
sessionHandler
- The sessionHandler to set.public void setSessionPath(String path)
SessionManager
setSessionPath
in interface SessionManager
path
- the path to set on the session cookieSessionManager.setSessionPath(java.lang.String)
public void setSessionIdPathParameterName(String param)
SessionManager
setSessionIdPathParameterName
in interface SessionManager
param
- the URL path parameter name for session id URL rewriting (null or "none" for no rewriting).SessionManager.getSessionIdPathParameterName()
,
SessionManager.getSessionIdPathParameterNamePrefix()
public void setUsingCookies(boolean usingCookies)
usingCookies
- The usingCookies to set.protected abstract void addSession(AbstractSessionManager.Session session)
protected void addSession(AbstractSessionManager.Session session, boolean created)
public abstract AbstractSessionManager.Session getSession(String idInCluster)
idInCluster
- The session ID in the cluster, stripped of any worker name.
protected abstract void invalidateSessions()
protected abstract AbstractSessionManager.Session newSession(HttpServletRequest request)
request
-
public boolean isNodeIdInSessionId()
HttpSession.getId()
. Default is false.public void setNodeIdInSessionId(boolean nodeIdInSessionId)
nodeIdInSessionId
- true if the cluster node id (worker id) will be returned as part of the session id by HttpSession.getId()
. Default is false.public void removeSession(HttpSession session, boolean invalidate)
session
- The session to removeinvalidate
- True if HttpSessionListener.sessionDestroyed(HttpSessionEvent)
and
SessionIdManager.invalidateAll(String)
should be called.public void removeSession(AbstractSessionManager.Session session, boolean invalidate)
session
- The session to removeinvalidate
- True if HttpSessionListener.sessionDestroyed(HttpSessionEvent)
and
SessionIdManager.invalidateAll(String)
should be called.protected abstract boolean removeSession(String idInCluster)
public long getSessionTimeMax()
public long getSessionTimeTotal()
public double getSessionTimeMean()
public double getSessionTimeStdDev()
public boolean isCheckingRemoteSessionIdEncoding()
isCheckingRemoteSessionIdEncoding
in interface SessionManager
SessionManager.isCheckingRemoteSessionIdEncoding()
public void setCheckingRemoteSessionIdEncoding(boolean remote)
setCheckingRemoteSessionIdEncoding
in interface SessionManager
remote
- True if absolute URLs are check for remoteness before being session encoded.SessionManager.setCheckingRemoteSessionIdEncoding(boolean)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |