@ManagedObject public class DefaultSessionIdManager extends ContainerLifeCycle implements SessionIdManager
HouseKeeperAbstractLifeCycle.AbstractLifeCycleListenerLifeCycle.ListenerContainer.InheritedListener, Container.Listener| Modifier and Type | Field and Description |
|---|---|
private static java.lang.String |
__NEW_SESSION_ID |
protected HouseKeeper |
_houseKeeper |
protected boolean |
_ownHouseKeeper |
protected java.util.Random |
_random |
protected long |
_reseed |
protected Server |
_server |
protected boolean |
_weakRandom |
protected java.lang.String |
_workerAttr |
protected java.lang.String |
_workerName |
protected static java.util.concurrent.atomic.AtomicLong |
COUNTER |
private static Logger |
LOG |
FAILED, RUNNING, STARTED, STARTING, STOP_ON_FAILURE, STOPPED, STOPPING| Constructor and Description |
|---|
DefaultSessionIdManager(Server server) |
DefaultSessionIdManager(Server server,
java.util.Random random) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
doStart()
Starts the managed lifecycle beans in the order they were added.
|
protected void |
doStop()
Stops the managed lifecycle beans in the reverse order they were added.
|
void |
expireAll(java.lang.String id)
Remove an id from use by telling all contexts to remove a session with this id.
|
java.lang.String |
getExtendedId(java.lang.String clusterId,
javax.servlet.http.HttpServletRequest request)
Get the session ID with any worker ID.
|
java.lang.String |
getId(java.lang.String extendedId)
Get the session ID without any worker ID.
|
java.util.Random |
getRandom() |
long |
getReseed() |
Server |
getServer() |
java.util.Set<SessionHandler> |
getSessionHandlers()
Get SessionManager for every context.
|
HouseKeeper |
getSessionHouseKeeper() |
java.lang.String |
getWorkerName()
Get the workname.
|
void |
initRandom()
Set up a random number generator for the sessionids.
|
void |
invalidateAll(java.lang.String id)
Invalidate all sessions on all contexts that share the same id.
|
boolean |
isIdInUse(java.lang.String id) |
java.lang.String |
newSessionId(javax.servlet.http.HttpServletRequest request,
long created)
Create a new session id if necessary.
|
java.lang.String |
newSessionId(long seedTerm) |
java.lang.String |
renewSessionId(java.lang.String oldClusterId,
java.lang.String oldNodeId,
javax.servlet.http.HttpServletRequest request)
Generate a new id for a session and update across
all SessionManagers.
|
void |
setRandom(java.util.Random random) |
void |
setReseed(long reseed)
Set the reseed probability.
|
void |
setServer(Server server) |
void |
setSessionHouseKeeper(HouseKeeper houseKeeper) |
void |
setWorkerName(java.lang.String workerName)
Set the workername.
|
java.lang.String |
toString() |
addBean, addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dump, dump, dump, dumpBeans, dumpObject, dumpStdErr, dumpThis, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isManaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, start, stop, unmanage, updateBean, updateBean, updateBeansaddLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stopclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, start, stop, stopprivate static final Logger LOG
private static final java.lang.String __NEW_SESSION_ID
protected static final java.util.concurrent.atomic.AtomicLong COUNTER
protected java.util.Random _random
protected boolean _weakRandom
protected java.lang.String _workerName
protected java.lang.String _workerAttr
protected long _reseed
protected Server _server
protected HouseKeeper _houseKeeper
protected boolean _ownHouseKeeper
public DefaultSessionIdManager(Server server)
server - the server associated with the id managerpublic DefaultSessionIdManager(Server server, java.util.Random random)
server - the server associated with the id managerrandom - a random number generator to use for idspublic void setServer(Server server)
server - the server associated with this id managerpublic Server getServer()
public void setSessionHouseKeeper(HouseKeeper houseKeeper)
setSessionHouseKeeper in interface SessionIdManagerhouseKeeper - the housekeeperpublic HouseKeeper getSessionHouseKeeper()
getSessionHouseKeeper in interface SessionIdManager@ManagedAttribute(value="unique name for this node", readonly=true) public java.lang.String getWorkerName()
getWorkerName in interface SessionIdManagerpublic void setWorkerName(java.lang.String workerName)
workerName - the name of the worker, if null it is coerced to empty stringpublic java.util.Random getRandom()
public void setRandom(java.util.Random random)
random - a random number generator for generating idspublic long getReseed()
public void setReseed(long reseed)
reseed - If non zero then when a random long modulo the reseed value == 1, the SecureRandom will be reseeded.public java.lang.String newSessionId(javax.servlet.http.HttpServletRequest request,
long created)
newSessionId in interface SessionIdManagerrequest - the request with the sesioncreated - the timestamp for when the session was createdSessionIdManager.newSessionId(javax.servlet.http.HttpServletRequest, long)public java.lang.String newSessionId(long seedTerm)
seedTerm - the seed for RNGpublic boolean isIdInUse(java.lang.String id)
isIdInUse in interface SessionIdManagerid - The plain session ID (ie no workername extension)SessionIdManager.isIdInUse(java.lang.String)protected void doStart()
throws java.lang.Exception
ContainerLifeCycledoStart in class ContainerLifeCyclejava.lang.ExceptionAbstractLifeCycle.doStart()protected void doStop()
throws java.lang.Exception
ContainerLifeCycledoStop in class ContainerLifeCyclejava.lang.ExceptionAbstractLifeCycle.doStop()public void initRandom()
public java.lang.String getExtendedId(java.lang.String clusterId,
javax.servlet.http.HttpServletRequest request)
getExtendedId in interface SessionIdManagerclusterId - the cluster idrequest - the requestpublic java.lang.String getId(java.lang.String extendedId)
getId in interface SessionIdManagerextendedId - the session id with the worker extensionpublic void expireAll(java.lang.String id)
expireAll in interface SessionIdManagerid - The session ID without any cluster node extensionSessionIdManager.expireAll(java.lang.String)public void invalidateAll(java.lang.String id)
SessionIdManagerinvalidateAll in interface SessionIdManagerid - the session idpublic java.lang.String renewSessionId(java.lang.String oldClusterId,
java.lang.String oldNodeId,
javax.servlet.http.HttpServletRequest request)
renewSessionId in interface SessionIdManageroldClusterId - the old plain session idoldNodeId - the old fully qualified idrequest - the request containing the sessionSessionIdManager.renewSessionId(java.lang.String, java.lang.String, javax.servlet.http.HttpServletRequest)public java.util.Set<SessionHandler> getSessionHandlers()
getSessionHandlers in interface SessionIdManagerpublic java.lang.String toString()
toString in class java.lang.ObjectObject.toString()