DEFAULT_ALGORITHM
protected static final String DEFAULT_ALGORITHM
The default message digest algorithm to use if we cannot use
the requested one.
algorithm
protected String algorithm
The message digest algorithm to be used when generating session
identifiers. This must be an algorithm supported by the
java.security.MessageDigest
class on your platform.
container
protected Container container
The Container with which this Manager is associated.
debug
protected int debug
The debugging detail level for this component.
defaultContext
protected DefaultContext defaultContext
The DefaultContext with which this Manager is associated.
devRandomSource
protected String devRandomSource
digest
protected MessageDigest digest
Return the MessageDigest implementation to be used when
creating session identifiers.
distributable
protected boolean distributable
The distributable flag for Sessions created by this Manager. If this
flag is set to true
, any user attributes added to a
session controlled by this Manager must be Serializable.
domain
protected String domain
duplicates
protected int duplicates
entropy
protected String entropy
A String initialization parameter used to increase the entropy of
the initialization of our random number generator.
initialized
protected boolean initialized
maxActive
protected int maxActive
maxInactiveInterval
protected int maxInactiveInterval
The default maximum inactive interval for Sessions created by
this Manager.
mserver
protected MBeanServer mserver
name
protected static String name
The descriptive name of this Manager implementation (for logging).
oname
protected ObjectName oname
random
protected Random random
A random number generator to use when generating session identifiers.
randomClass
protected String randomClass
The Java class name of the random number generator class to be used
when generating session identifiers.
randomIS
protected DataInputStream randomIS
sessionCounter
protected int sessionCounter
sessionIdLength
protected int sessionIdLength
The session id length of Sessions created by this Manager.
sessions
protected HashMap sessions
The set of currently active Sessions for this Manager, keyed by
session identifier.
sm
protected static StringManager sm
The string manager for this package.
support
protected PropertyChangeSupport support
The property change support for this component.
add
public void add(Session session)
Add this Session to the set of active Sessions for this Manager.
- add in interface Manager
session
- Session to be added
addPropertyChangeListener
public void addPropertyChangeListener(PropertyChangeListener listener)
Add a property change listener to this component.
- addPropertyChangeListener in interface Manager
listener
- The listener to add
backgroundProcess
public void backgroundProcess()
Implements the Manager interface, direct call to processExpires
- backgroundProcess in interface Manager
createEmptySession
public Session createEmptySession()
Get a session from the recycled ones or create a new empty one.
The PersistentManager manager does not need to create session data
because it reads it from the Store.
- createEmptySession in interface Manager
createSession
public Session createSession()
Construct and return a new session object, based on the default
settings specified by this Manager's properties. The session
id will be assigned by this method, and available via the getId()
method of the returned session. If a new session cannot be created
for any reason, return null
.
- createSession in interface Manager
destroy
public void destroy()
expireSession
public void expireSession(String sessionId)
findSession
public Session findSession(String id)
throws IOException
Return the active Session, associated with this Manager, with the
specified session id (if any); otherwise return null
.
- findSession in interface Manager
id
- The session id for the session to be returned
findSessions
public Session[] findSessions()
Return the set of active Sessions associated with this Manager.
If this Manager has no active Sessions, a zero-length array is returned.
- findSessions in interface Manager
generateSessionId
protected String generateSessionId()
Generate and return a new session identifier.
getActiveSessions
public int getActiveSessions()
Returns the number of active sessions
- getActiveSessions in interface Manager
- number of sessions active
getAlgorithm
public String getAlgorithm()
Return the message digest algorithm for this Manager.
getClassName
public String getClassName()
Returns the name of the implementation class.
getDebug
public int getDebug()
Return the debugging detail level for this component.
getDigest
public MessageDigest getDigest()
Return the MessageDigest object to be used for calculating
session identifiers. If none has been created yet, initialize
one the first time this method is called.
getDistributable
public boolean getDistributable()
Return the distributable flag for the sessions supported by
this Manager.
- getDistributable in interface Manager
getDomain
public String getDomain()
getDuplicates
public int getDuplicates()
Number of duplicated session IDs generated by the random source.
Anything bigger than 0 means problems.
- The count of duplicates
getEngine
public Engine getEngine()
Retrieve the enclosing Engine for this Manager.
- an Engine object (or null).
getEntropy
public String getEntropy()
Return the entropy increaser value, or compute a semi-useful value
if this String has not yet been set.
getInfo
public String getInfo()
Return descriptive information about this Manager implementation and
the corresponding version number, in the format
<description>/<version>
.
- getInfo in interface Manager
getJvmRoute
public String getJvmRoute()
Retrieve the JvmRoute for the enclosing Engine.
- the JvmRoute or null.
getLastAccessedTime
public String getLastAccessedTime(String sessionId)
getMaxActive
public int getMaxActive()
Max number of concurrent active sessions
- getMaxActive in interface Manager
- The highest number of concurrent active sessions
getMaxInactiveInterval
public int getMaxInactiveInterval()
Return the default maximum inactive interval (in seconds)
for Sessions created by this Manager.
- getMaxInactiveInterval in interface Manager
getName
public String getName()
Return the descriptive short name of this Manager implementation.
getNewSession
protected StandardSession getNewSession()
Get new session class to be used in the doLoad() method.
getObjectName
public ObjectName getObjectName()
getRandom
public Random getRandom()
Return the random number generator instance we should use for
generating session identifiers. If there is no such generator
currently defined, construct and seed a new one.
getRandomBytes
protected void getRandomBytes(bytes[] )
getRandomClass
public String getRandomClass()
Return the random number generator class name.
getRandomFile
public String getRandomFile()
getSessionAttribute
public String getSessionAttribute(String sessionId,
String key)
For debugging: get a session attribute
sessionId
- key
-
- The attribute value, if found, null otherwise
getSessionCounter
public int getSessionCounter()
Total sessions created by this manager.
- getSessionCounter in interface Manager
- sessions created
getSessionIdLength
public int getSessionIdLength()
Gets the session id length (in bytes) of Sessions created by
this Manager.
- getSessionIdLength in interface Manager
- The session id length
listSessionIds
public String listSessionIds()
For debugging: return a list of all session ids currently active
log
protected void log(String message)
Log a message on the Logger associated with our Container (if any).
message
- Message to be logged
log
protected void log(String message,
Throwable throwable)
Log a message on the Logger associated with our Container (if any).
message
- Message to be loggedthrowable
- Associated exception
postDeregister
public void postDeregister()
postRegister
public void postRegister(Boolean registrationDone)
preDeregister
public void preDeregister()
throws Exception
preRegister
public ObjectName preRegister(MBeanServer server,
ObjectName name)
throws Exception
remove
public void remove(Session session)
Remove this Session from the active Sessions for this Manager.
- remove in interface Manager
session
- Session to be removed
removePropertyChangeListener
public void removePropertyChangeListener(PropertyChangeListener listener)
Remove a property change listener from this component.
- removePropertyChangeListener in interface Manager
listener
- The listener to remove
setAlgorithm
public void setAlgorithm(String algorithm)
Set the message digest algorithm for this Manager.
algorithm
- The new message digest algorithm
setContainer
public void setContainer(Container container)
Set the Container with which this Manager is associated.
- setContainer in interface Manager
container
- The newly associated Container
setDebug
public void setDebug(int debug)
Set the debugging detail level for this component.
debug
- The new debugging detail level
setDefaultContext
public void setDefaultContext(DefaultContext defaultContext)
Set the DefaultContext with which this Manager is associated.
- setDefaultContext in interface Manager
defaultContext
- The newly associated DefaultContext
setDistributable
public void setDistributable(boolean distributable)
Set the distributable flag for the sessions supported by this
Manager. If this flag is set, all user data objects added to
sessions associated with this manager must implement Serializable.
- setDistributable in interface Manager
distributable
- The new distributable flag
setDuplicates
public void setDuplicates(int duplicates)
setEntropy
public void setEntropy(String entropy)
Set the entropy increaser value.
entropy
- The new entropy increaser value
setMaxActive
public void setMaxActive(int maxActive)
(Re)sets the maximum number of sessions that have been active at the
same time.
- setMaxActive in interface Manager
maxActive
- Maximum number of sessions that have been active at
the same time.
setMaxInactiveInterval
public void setMaxInactiveInterval(int interval)
Set the default maximum inactive interval (in seconds)
for Sessions created by this Manager.
- setMaxInactiveInterval in interface Manager
interval
- The new default value
setRandomClass
public void setRandomClass(String randomClass)
Set the random number generator class name.
randomClass
- The new random number generator class name
setRandomFile
public void setRandomFile(String s)
Use /dev/random-type special device. This is new code, but may reduce
the big delay in generating the random.
You must specify a path to a random generator file. Use /dev/urandom
for linux ( or similar ) systems. Use /dev/random for maximum security
( it may block if not enough "random" exist ). You can also use
a pipe that generates random.
The code will check if the file exists, and default to java Random
if not found. There is a significant performance difference, very
visible on the first call to getSession ( like in the first JSP )
- so use it if available.
setSessionCounter
public void setSessionCounter(int sessionCounter)
Sets the total number of sessions created by this manager.
- setSessionCounter in interface Manager
sessionCounter
- Total number of sessions created by this manager.
setSessionIdLength
public void setSessionIdLength(int idLength)
Sets the session id length (in bytes) for Sessions created by this
Manager.
- setSessionIdLength in interface Manager
idLength
- The session id length