|
Apache Tomcat 6.0.53 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.catalina.session.ManagerBase
public abstract class ManagerBase
Minimal implementation of the Manager interface that supports no session persistence or distributable capabilities. This class may be subclassed to create more sophisticated Manager implementations.
Nested Class Summary | |
---|---|
protected static class |
ManagerBase.SessionTiming
|
Field Summary | |
---|---|
protected java.lang.String |
algorithm
The message digest algorithm to be used when generating session identifiers. |
protected Container |
container
The Container with which this Manager is associated. |
protected static java.lang.String |
DEFAULT_ALGORITHM
The default message digest algorithm to use if we cannot use the requested one. |
protected java.lang.String |
devRandomSource
|
protected java.security.MessageDigest |
digest
Return the MessageDigest implementation to be used when creating session identifiers. |
protected boolean |
distributable
Deprecated. Ignored. Context.getDistributable() always takes
precedence. Will be removed in Tomcat 9.0.x. |
protected java.lang.String |
domain
|
protected int |
duplicates
|
protected java.lang.String |
entropy
A String initialization parameter used to increase the entropy of the initialization of our random number generator. |
protected int |
expiredSessions
Number of sessions that have expired. |
protected boolean |
initialized
|
protected Log |
log
|
protected int |
maxActive
|
protected int |
maxInactiveInterval
Deprecated. Ignored. Context.getSessionTimeout() always takes
precedence. Will be removed in Tomcat 9.0.x. |
protected javax.management.MBeanServer |
mserver
|
protected static java.lang.String |
name
The descriptive name of this Manager implementation (for logging). |
protected javax.management.ObjectName |
oname
|
protected int |
processExpiresFrequency
Frequency of the session expiration, and related manager operations. |
protected long |
processingTime
Processing time during session expiration. |
protected java.util.Random |
random
A random number generator to use when generating session identifiers. |
protected java.lang.String |
randomClass
The Java class name of the random number generator class to be used when generating session identifiers. |
protected java.io.DataInputStream |
randomIS
|
protected int |
sessionAverageAliveTime
Average time (in seconds) that expired sessions had been alive. |
protected int |
sessionCounter
|
protected java.util.LinkedList<ManagerBase.SessionTiming> |
sessionCreationTiming
|
protected java.util.LinkedList<ManagerBase.SessionTiming> |
sessionExpirationTiming
|
protected int |
sessionIdLength
The session id length of Sessions created by this Manager. |
protected int |
sessionMaxAliveTime
The longest time (in seconds) that an expired session had been alive. |
protected java.util.Map<java.lang.String,Session> |
sessions
The set of currently active Sessions for this Manager, keyed by session identifier. |
protected static StringManager |
sm
The string manager for this package. |
protected java.beans.PropertyChangeSupport |
support
The property change support for this component. |
protected static int |
TIMING_STATS_CACHE_SIZE
|
Constructor Summary | |
---|---|
ManagerBase()
|
Method Summary | |
---|---|
void |
add(Session session)
Add this Session to the set of active Sessions for this Manager. |
void |
addPropertyChangeListener(java.beans.PropertyChangeListener listener)
Add a property change listener to this component. |
void |
backgroundProcess()
Implements the Manager interface, direct call to processExpires |
void |
changeSessionId(Session session)
Change the session ID of the current session to a new randomly generated session ID. |
Session |
createEmptySession()
Get a session from the recycled ones or create a new empty one. |
Session |
createSession()
Deprecated. |
Session |
createSession(java.lang.String sessionId)
Construct and return a new session object, based on the default settings specified by this Manager's properties. |
void |
destroy()
|
void |
expireSession(java.lang.String sessionId)
|
Session |
findSession(java.lang.String id)
Return the active Session, associated with this Manager, with the specified session id (if any); otherwise return null . |
Session[] |
findSessions()
Return the set of active Sessions associated with this Manager. |
protected java.lang.String |
generateSessionId()
Generate and return a new session identifier. |
int |
getActiveSessions()
Returns the number of active sessions |
java.lang.String |
getAlgorithm()
Return the message digest algorithm for this Manager. |
java.lang.String |
getClassName()
|
Container |
getContainer()
Return the Container with which this Manager is associated. |
java.lang.String |
getCreationTime(java.lang.String sessionId)
|
long |
getCreationTimestamp(java.lang.String sessionId)
|
java.security.MessageDigest |
getDigest()
Return the MessageDigest object to be used for calculating session identifiers. |
boolean |
getDistributable()
Deprecated. |
java.lang.String |
getDomain()
|
int |
getDuplicates()
Number of duplicated session IDs generated by the random source. |
Engine |
getEngine()
Retrieve the enclosing Engine for this Manager. |
java.lang.String |
getEntropy()
Return the entropy increaser value, or compute a semi-useful value if this String has not yet been set. |
int |
getExpiredSessions()
Gets the number of sessions that have expired. |
java.lang.String |
getInfo()
Deprecated. |
java.lang.String |
getJvmRoute()
Retrieve the JvmRoute for the enclosing Engine. |
java.lang.String |
getLastAccessedTime(java.lang.String sessionId)
|
long |
getLastAccessedTimestamp(java.lang.String sessionId)
|
int |
getMaxActive()
Max number of concurrent active sessions |
int |
getMaxInactiveInterval()
Return the default maximum inactive interval (in seconds) for Sessions created by this Manager. |
java.lang.String |
getName()
|
protected StandardSession |
getNewSession()
Get new session class to be used in the doLoad() method. |
javax.management.ObjectName |
getObjectName()
|
int |
getProcessExpiresFrequency()
|
long |
getProcessingTime()
|
java.util.Random |
getRandom()
Return the random number generator instance we should use for generating session identifiers. |
protected void |
getRandomBytes(byte[] bytes)
|
java.lang.String |
getRandomClass()
Return the random number generator class name. |
java.lang.String |
getRandomFile()
|
java.util.HashMap<java.lang.String,java.lang.Object> |
getSession(java.lang.String sessionId)
Returns information about the session with the given session id. |
java.lang.String |
getSessionAttribute(java.lang.String sessionId,
java.lang.String key)
For debugging. |
java.lang.String |
getSessionAttributeNameFilter()
Obtain the regular expression used to filter session attribute based on attribute name. |
protected java.util.regex.Pattern |
getSessionAttributeNamePattern()
|
java.lang.String |
getSessionAttributeValueClassNameFilter()
Obtain the regular expression used to filter session attribute based on the implementation class of the value. |
protected java.util.regex.Pattern |
getSessionAttributeValueClassNamePattern()
Provides getSessionAttributeValueClassNameFilter() as a
pre-compiled regular expression pattern. |
int |
getSessionAverageAliveTime()
Gets the average time (in seconds) that expired sessions had been alive. |
int |
getSessionCounter()
Total sessions created by this manager. |
int |
getSessionCreateRate()
Gets the current rate of session creation (in session per minute) based on the creation time of the previous 100 sessions created. |
int |
getSessionExpireRate()
Gets the current rate of session expiration (in session per minute) based on the expiry time of the previous 100 sessions expired. |
int |
getSessionIdLength()
Gets the session id length (in bytes) of Sessions created by this Manager. |
int |
getSessionMaxAliveTime()
Gets the longest time (in seconds) that an expired session had been alive. |
boolean |
getWarnOnSessionAttributeFilterFailure()
Should a warn level log message be generated if a session attribute is not persisted / replicated / restored. |
void |
init()
|
java.lang.String |
listSessionIds()
For debugging. |
void |
postDeregister()
|
void |
postRegister(java.lang.Boolean registrationDone)
|
void |
preDeregister()
|
javax.management.ObjectName |
preRegister(javax.management.MBeanServer server,
javax.management.ObjectName name)
|
void |
processExpires()
Invalidate all sessions that have expired. |
void |
remove(Session session)
Remove this Session from the active Sessions for this Manager. |
void |
removePropertyChangeListener(java.beans.PropertyChangeListener listener)
Remove a property change listener from this component. |
void |
setAlgorithm(java.lang.String algorithm)
Set the message digest algorithm for this Manager. |
void |
setContainer(Container container)
Set the Container with which this Manager is associated. |
void |
setDistributable(boolean distributable)
Deprecated. |
void |
setDuplicates(int duplicates)
|
void |
setEntropy(java.lang.String entropy)
Set the entropy increaser value. |
void |
setExpiredSessions(int expiredSessions)
Sets the number of sessions that have expired. |
void |
setMaxActive(int maxActive)
(Re)sets the maximum number of sessions that have been active at the same time. |
void |
setMaxInactiveInterval(int interval)
Deprecated. |
void |
setProcessExpiresFrequency(int processExpiresFrequency)
Set the manager checks frequency. |
void |
setProcessingTime(long processingTime)
|
void |
setRandomClass(java.lang.String randomClass)
Set the random number generator class name. |
void |
setRandomFile(java.lang.String s)
Use /dev/random-type special device. |
void |
setSessionAttributeNameFilter(java.lang.String sessionAttributeNameFilter)
|
void |
setSessionAttributeValueClassNameFilter(java.lang.String sessionAttributeValueClassNameFilter)
Set the regular expression to use to filter classes used for session attributes. |
void |
setSessionAverageAliveTime(int sessionAverageAliveTime)
Sets the average time (in seconds) that expired sessions had been alive. |
void |
setSessionCounter(int sessionCounter)
Sets the total number of sessions created by this manager. |
void |
setSessionIdLength(int idLength)
Sets the session id length (in bytes) for Sessions created by this Manager. |
void |
setSessionMaxAliveTime(int sessionMaxAliveTime)
Sets the longest time (in seconds) that an expired session had been alive. |
void |
setWarnOnSessionAttributeFilterFailure(boolean warnOnSessionAttributeFilterFailure)
Configure whether or not a warn level log message should be generated if a session attribute is not persisted / replicated / restored. |
boolean |
willAttributeDistribute(java.lang.String name,
java.lang.Object value)
Would the Manager distribute the given session attribute? This implementation excludes session attributes from distribution if the: attribute name matches getSessionAttributeNameFilter()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.apache.catalina.Manager |
---|
getRejectedSessions, load, setRejectedSessions, unload |
Field Detail |
---|
protected Log log
protected java.io.DataInputStream randomIS
protected java.lang.String devRandomSource
protected static final java.lang.String DEFAULT_ALGORITHM
protected java.lang.String algorithm
java.security.MessageDigest
class on your platform.
protected Container container
protected java.security.MessageDigest digest
@Deprecated protected boolean distributable
Context.getDistributable()
always takes
precedence. Will be removed in Tomcat 9.0.x.true
, any user attributes added to a
session controlled by this Manager must be Serializable.
protected java.lang.String entropy
@Deprecated protected int maxInactiveInterval
Context.getSessionTimeout()
always takes
precedence. Will be removed in Tomcat 9.0.x.
protected int sessionIdLength
protected static java.lang.String name
protected java.util.Random random
protected java.lang.String randomClass
protected int sessionMaxAliveTime
protected int sessionAverageAliveTime
protected static final int TIMING_STATS_CACHE_SIZE
protected java.util.LinkedList<ManagerBase.SessionTiming> sessionCreationTiming
protected java.util.LinkedList<ManagerBase.SessionTiming> sessionExpirationTiming
protected int expiredSessions
protected java.util.Map<java.lang.String,Session> sessions
protected int sessionCounter
protected volatile int maxActive
protected int duplicates
protected boolean initialized
protected long processingTime
protected int processExpiresFrequency
protected static final StringManager sm
protected java.beans.PropertyChangeSupport support
protected java.lang.String domain
protected javax.management.ObjectName oname
protected javax.management.MBeanServer mserver
Constructor Detail |
---|
public ManagerBase()
Method Detail |
---|
public java.lang.String getSessionAttributeNameFilter()
null
means no filter is applied. If an empty string is
specified then no names will match the filter and all attributes
will be blocked.public void setSessionAttributeNameFilter(java.lang.String sessionAttributeNameFilter)
protected java.util.regex.Pattern getSessionAttributeNamePattern()
public java.lang.String getSessionAttributeValueClassNameFilter()
null
means no filter is applied. If an empty string is
specified then no names will match the filter and all attributes
will be blocked.protected java.util.regex.Pattern getSessionAttributeValueClassNamePattern()
getSessionAttributeValueClassNameFilter()
as a
pre-compiled regular expression pattern.
null
means
no filter is applied.public void setSessionAttributeValueClassNameFilter(java.lang.String sessionAttributeValueClassNameFilter) throws java.util.regex.PatternSyntaxException
sessionAttributeValueClassNameFilter
- The regular expression to use
to filter session attributes based on class name. Use null
if no filtering is required. If an empty string is
specified then no names will match the filter and all
attributes will be blocked.
java.util.regex.PatternSyntaxException
- If the expression is not validpublic boolean getWarnOnSessionAttributeFilterFailure()
true
if a warn level log message should be generatedpublic void setWarnOnSessionAttributeFilterFailure(boolean warnOnSessionAttributeFilterFailure)
warnOnSessionAttributeFilterFailure
- true
if the
warn level message should be generatedpublic java.lang.String getAlgorithm()
public void setAlgorithm(java.lang.String algorithm)
algorithm
- The new message digest algorithmpublic Container getContainer()
getContainer
in interface Manager
public void setContainer(Container container)
Manager
null
value) that the Manager is
associated with.
setContainer
in interface Manager
container
- The newly associated Containerpublic java.lang.String getClassName()
public java.security.MessageDigest getDigest()
@Deprecated public boolean getDistributable()
getDistributable
in interface Manager
@Deprecated public void setDistributable(boolean distributable)
Manager
setDistributable
in interface Manager
distributable
- The new distributable flagpublic java.lang.String getEntropy()
public void setEntropy(java.lang.String entropy)
entropy
- The new entropy increaser value@Deprecated public java.lang.String getInfo()
<description>/<version>
.
getInfo
in interface Manager
public int getMaxInactiveInterval()
getMaxInactiveInterval
in interface Manager
@Deprecated public void setMaxInactiveInterval(int interval)
Manager
setMaxInactiveInterval
in interface Manager
interval
- The new default valuepublic int getSessionIdLength()
getSessionIdLength
in interface Manager
public void setSessionIdLength(int idLength)
setSessionIdLength
in interface Manager
idLength
- The session id lengthpublic java.lang.String getName()
public void setRandomFile(java.lang.String s)
public java.lang.String getRandomFile()
public java.util.Random getRandom()
public java.lang.String getRandomClass()
public void setRandomClass(java.lang.String randomClass)
randomClass
- The new random number generator class namepublic int getExpiredSessions()
getExpiredSessions
in interface Manager
public void setExpiredSessions(int expiredSessions)
setExpiredSessions
in interface Manager
expiredSessions
- Number of sessions that have expiredpublic long getProcessingTime()
public void setProcessingTime(long processingTime)
public int getProcessExpiresFrequency()
public void setProcessExpiresFrequency(int processExpiresFrequency)
processExpiresFrequency
- the new manager checks frequencypublic void backgroundProcess()
backgroundProcess
in interface Manager
public void processExpires()
public void destroy()
public void init()
public void add(Session session)
add
in interface Manager
session
- Session to be addedpublic void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
addPropertyChangeListener
in interface Manager
listener
- The listener to add@Deprecated public Session createSession()
null
.
createSession
in interface Manager
java.lang.IllegalStateException
- if a new session cannot be
instantiated for any reasonpublic Session createSession(java.lang.String sessionId)
null
.
createSession
in interface Manager
sessionId
- The session id which should be used to create the
new session; if null
, a new session id will be
generated
java.lang.IllegalStateException
- if a new session cannot be
instantiated for any reasonpublic Session createEmptySession()
createEmptySession
in interface Manager
public Session findSession(java.lang.String id) throws java.io.IOException
null
.
findSession
in interface Manager
id
- The session id for the session to be returned
java.lang.IllegalStateException
- if a new session cannot be
instantiated for any reason
java.io.IOException
- if an input/output error occurs while
processing this requestpublic Session[] findSessions()
findSessions
in interface Manager
public void remove(Session session)
remove
in interface Manager
session
- Session to be removedpublic void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
removePropertyChangeListener
in interface Manager
listener
- The listener to removepublic void changeSessionId(Session session)
changeSessionId
in interface Manager
session
- The session to change the session ID forpublic boolean willAttributeDistribute(java.lang.String name, java.lang.Object value)
This implementation excludes session attributes from distribution if the:
getSessionAttributeNameFilter()
willAttributeDistribute
in interface Manager
name
- The attribute namevalue
- The attribute value
true
if the Manager would distribute the given attribute
otherwise false
protected StandardSession getNewSession()
protected void getRandomBytes(byte[] bytes)
protected java.lang.String generateSessionId()
public Engine getEngine()
public java.lang.String getJvmRoute()
public void setSessionCounter(int sessionCounter)
Manager
setSessionCounter
in interface Manager
sessionCounter
- Total number of sessions created by this manager.public int getSessionCounter()
getSessionCounter
in interface Manager
public int getDuplicates()
public void setDuplicates(int duplicates)
public int getActiveSessions()
getActiveSessions
in interface Manager
public int getMaxActive()
getMaxActive
in interface Manager
public void setMaxActive(int maxActive)
Manager
setMaxActive
in interface Manager
maxActive
- Maximum number of sessions that have been active at
the same time.public int getSessionMaxAliveTime()
getSessionMaxAliveTime
in interface Manager
public void setSessionMaxAliveTime(int sessionMaxAliveTime)
setSessionMaxAliveTime
in interface Manager
sessionMaxAliveTime
- Longest time (in seconds) that an expired
session had been alive.public int getSessionAverageAliveTime()
getSessionAverageAliveTime
in interface Manager
public void setSessionAverageAliveTime(int sessionAverageAliveTime)
setSessionAverageAliveTime
in interface Manager
sessionAverageAliveTime
- Average time (in seconds) that expired
sessions had been alive.public int getSessionCreateRate()
public int getSessionExpireRate()
public java.lang.String listSessionIds()
public java.lang.String getSessionAttribute(java.lang.String sessionId, java.lang.String key)
sessionId
- The ID for the session of interestkey
- The key for the attribute to obtain
public java.util.HashMap<java.lang.String,java.lang.Object> getSession(java.lang.String sessionId)
The session information is organized as a HashMap, mapping session attribute names to the String representation of their values.
sessionId
- Session id
public void expireSession(java.lang.String sessionId)
public long getLastAccessedTimestamp(java.lang.String sessionId)
public java.lang.String getLastAccessedTime(java.lang.String sessionId)
public java.lang.String getCreationTime(java.lang.String sessionId)
public long getCreationTimestamp(java.lang.String sessionId)
public javax.management.ObjectName getObjectName()
public java.lang.String getDomain()
public javax.management.ObjectName preRegister(javax.management.MBeanServer server, javax.management.ObjectName name) throws java.lang.Exception
preRegister
in interface javax.management.MBeanRegistration
java.lang.Exception
public void postRegister(java.lang.Boolean registrationDone)
postRegister
in interface javax.management.MBeanRegistration
public void preDeregister() throws java.lang.Exception
preDeregister
in interface javax.management.MBeanRegistration
java.lang.Exception
public void postDeregister()
postDeregister
in interface javax.management.MBeanRegistration
|
Apache Tomcat 6.0.53 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |