|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opencms.main.CmsSessionManager
Keeps track of the sessions running on the OpenCms server and provides a session info storage which is used to get an overview about currently authenticated OpenCms users, as well as sending broadcasts between users.
For each authenticated OpenCms user, a CmsSessionInfo
object
holds the information about the users status.
When a user session is invalidated, the user info will be removed. This happens when a user log out, or when his session times out.
Please Note: The current implementation does not provide any permission checking, so all users can access the methods of this manager. Permission checking based on the current users OpenCms context may be added in a future OpenCms release.
Constructor Summary | |
protected |
CmsSessionManager()
Creates a new instance of the OpenCms session manager. |
Method Summary | |
protected void |
addSessionInfo(CmsSessionInfo sessionInfo)
Adds a new session info into the session storage. |
org.apache.commons.collections.Buffer |
getBroadcastQueue(java.lang.String sessionId)
Returns the broadcast queue for the given session id. |
int |
getSessionCountAuthenticated()
Returns the number of sessions currently authenticated in the OpenCms security system. |
int |
getSessionCountCurrent()
Returns the number of current sessions, including the sessions of not authenticated guest users. |
int |
getSessionCountTotal()
Returns the number of total sessions generated so far, including already destroyed sessions. |
CmsSessionInfo |
getSessionInfo(java.lang.String sessionId)
Returns the complete user session info of a user from the session storage, or null if this session id has no session info attached. |
java.util.List |
getSessionInfos()
Returns all current session info objects. |
java.util.List |
getSessionInfos(CmsUUID userId)
Returns a list of all active session info objects for the specified user. |
void |
sendBroadcast(CmsObject cms,
java.lang.String message)
Sends a broadcast to all sessions of all currently authenticated users. |
void |
sendBroadcast(CmsObject cms,
java.lang.String message,
CmsUser user)
Sends a broadcast to all sessions of a given user. |
void |
sendBroadcast(CmsObject cms,
java.lang.String message,
java.lang.String sessionId)
Sends a broadcast to the specified user session. |
protected void |
sessionCreated(javax.servlet.http.HttpSessionEvent event)
Called by the OpenCmsListener when a http session is created. |
protected void |
sessionDestroyed(javax.servlet.http.HttpSessionEvent event)
Called by the OpenCmsListener when a http session is destroyed. |
java.lang.String |
toString()
|
protected void |
validateSessionInfos()
Validates the sessions stored in this manager and removes any sessions that have become invalidated. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
protected CmsSessionManager()
Method Detail |
public org.apache.commons.collections.Buffer getBroadcastQueue(java.lang.String sessionId)
sessionId
- the session id to get the broadcast queue for
public int getSessionCountAuthenticated()
public int getSessionCountCurrent()
public int getSessionCountTotal()
public CmsSessionInfo getSessionInfo(java.lang.String sessionId)
null
if this session id has no session info attached.
sessionId
- the session id to return the session info for
public java.util.List getSessionInfos()
public java.util.List getSessionInfos(CmsUUID userId)
An OpenCms user can have many active sessions. This is e.g. possible when two people have logged in to the system using the same username. Even one person can have multiple sessions if he is logged in to OpenCms with several browser windows at the same time.
userId
- the id of the user
public void sendBroadcast(CmsObject cms, java.lang.String message)
cms
- the OpenCms user context of the user sending the broadcastmessage
- the message to broadcastpublic void sendBroadcast(CmsObject cms, java.lang.String message, CmsUser user)
cms
- the OpenCms user context of the user sending the broadcastmessage
- the message to broadcastuser
- the target (reciever) of the broadcastpublic void sendBroadcast(CmsObject cms, java.lang.String message, java.lang.String sessionId)
cms
- the OpenCms user context of the user sending the broadcastmessage
- the message to broadcastsessionId
- the session id target (reciever) of the broadcastpublic java.lang.String toString()
Object.toString()
protected void addSessionInfo(CmsSessionInfo sessionInfo)
sessionInfo
- the session info to store for the idprotected void sessionCreated(javax.servlet.http.HttpSessionEvent event)
OpenCmsListener
when a http session is created.
event
- the http session eventHttpSessionListener.sessionCreated(javax.servlet.http.HttpSessionEvent)
,
OpenCmsListener.sessionCreated(HttpSessionEvent)
protected void sessionDestroyed(javax.servlet.http.HttpSessionEvent event)
OpenCmsListener
when a http session is destroyed.
event
- the http session eventHttpSessionListener.sessionDestroyed(javax.servlet.http.HttpSessionEvent)
,
OpenCmsListener.sessionDestroyed(HttpSessionEvent)
protected void validateSessionInfos()
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |