public class MemcachedBackupSessionManager extends org.apache.catalina.session.ManagerBase implements org.apache.catalina.Lifecycle, MemcachedSessionService.SessionManager
Manager stores session in configured memcached nodes after the
response is finished (committed).
Use this session manager in a Context element, like this
<Context path="/foo">
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1.localhost:11211 n2.localhost:11212" failoverNodes="n2"
connectionType="SASL" non-required
username="username" non-required
password="password" non-required
requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$" />
</Context>
| Modifier and Type | Field and Description |
|---|---|
protected org.apache.juli.logging.Log |
_log |
protected MemcachedSessionService |
_msm |
protected static String |
NAME |
container, distributable, duplicates, expiredSessions, maxActive, maxActiveSessions, maxInactiveInterval, processExpiresFrequency, processingTime, rejectedSessions, secureRandomAlgorithm, secureRandomClass, secureRandomProvider, SESSION_ID_LENGTH_UNSET, sessionCounter, sessionCreationTiming, sessionExpirationTiming, sessionIdGenerator, sessionIdGeneratorClass, sessionIdLength, sessionMaxAliveTime, sessions, sm, support, TIMING_STATS_CACHE_SIZEAFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT| Constructor and Description |
|---|
MemcachedBackupSessionManager() |
| Modifier and Type | Method and Description |
|---|---|
void |
backgroundProcess() |
void |
changeSessionId(org.apache.catalina.Session session) |
boolean |
contextHasFormBasedSecurityConstraint() |
MemcachedBackupSession |
createEmptySession() |
MemcachedBackupSession |
createSession(String sessionId) |
void |
expireSession(String sessionId) |
org.apache.catalina.Session |
findSession(String id)
Return the active Session, associated with this Manager, with the
specified session id (if any); otherwise return
null. |
String |
generateSessionId() |
int |
getBackupThreadCount()
The number of threads to use for session backup if session backup shall be
done asynchronously.
|
ClassLoader |
getContainerClassLoader() |
org.apache.catalina.Context |
getContext() |
String |
getFailoverNodes()
The memcached failover nodes configuration as provided in the server.xml/context.xml.
|
String |
getInfo()
Return descriptive information about this Manager implementation and the
corresponding version number, in the format
<description>/<version>. |
int |
getMaxInactiveInterval() |
String |
getMemcachedNodes()
The memcached nodes configuration as provided in the server.xml/context.xml.
|
MemcachedSessionService |
getMemcachedSessionService() |
String[] |
getMsmStatAttributesSerializationInfo()
Returns a string array with labels and values of count, min, avg and max
of the time that took the attributes serialization.
|
String[] |
getMsmStatBackupInfo()
Returns a string array with labels and values of count, min, avg and max
of the time that session backups took (excluding backups where a session
was relocated).
|
String[] |
getMsmStatCachedDataSizeInfo()
Returns a string array with labels and values of count, min, avg and max
of the size of the data that was sent to memcached.
|
String[] |
getMsmStatEffectiveBackupInfo()
Returns a string array with labels and values of count, min, avg and max
of the time that session backups took in the request thread (including omitted
session backups e.g.
|
String[] |
getMsmStatMemcachedUpdateInfo()
Returns a string array with labels and values of count, min, avg and max
of the time that storing data in memcached took (excluding serialization,
including compression).
|
String[] |
getMsmStatNonStickyAcquireLockFailureInfo()
Lock acquiration in non-sticky session mode.
|
String[] |
getMsmStatNonStickyAcquireLockInfo()
Info about locks acquired in non-sticky mode.
|
String[] |
getMsmStatNonStickyAfterBackupInfo()
Tasks executed for non-sticky sessions after session backup (ping session, store validity info / meta data,
store additional backup in secondary memcached).
|
String[] |
getMsmStatNonStickyAfterDeleteFromMemcachedInfo()
Tasks executed for non-sticky sessions after a session was deleted from memcached (delete validity info and backup data).
|
String[] |
getMsmStatNonStickyAfterLoadFromMemcachedInfo()
Tasks executed for non-sticky sessions after a session was loaded from memcached (load validity info / meta data).
|
String[] |
getMsmStatNonStickyOnBackupWithoutLoadedSessionInfo()
Tasks executed (in the request thread) for non-sticky sessions at the end of requests that did not access
the session (validity load/update, ping session, ping 2nd session backup, update validity backup).
|
String[] |
getMsmStatNonStickyReleaseLockInfo()
Lock release in non-sticky session mode.
|
long |
getMsmStatNumBackupFailures() |
long |
getMsmStatNumMemcachedFailover() |
long |
getMsmStatNumNoAttributesAccess() |
long |
getMsmStatNumNonStickySessionsPingFailed() |
long |
getMsmStatNumNonStickySessionsReadOnlyRequest() |
long |
getMsmStatNumNoSessionAccess() |
long |
getMsmStatNumNoSessionModification() |
long |
getMsmStatNumRequestsWithoutSession() |
long |
getMsmStatNumRequestsWithSession() |
long |
getMsmStatNumTomcatFailover() |
String[] |
getMsmStatSessionDeserializationInfo()
Returns a string array with labels and values of count, min, avg and max
of the time that deserialization of session data took.
|
String[] |
getMsmStatSessionsDeletedFromMemcachedInfo()
Returns a string array with labels and values of count, min, avg and max
of the time that deleting sessions from memcached took.
|
String[] |
getMsmStatSessionsLoadedFromMemcachedInfo()
Returns a string array with labels and values of count, min, avg and max
of the time that loading sessions from memcached took (including deserialization).
|
String |
getName()
Return the descriptive short name of this Manager implementation.
|
long |
getOperationTimeout() |
String |
getSessionAttributeFilter()
Return the string pattern used for including session attributes to a session-backup.
|
long |
getSessionBackupTimeout()
The timeout in milliseconds after that a session backup is considered as
beeing failed when
#getSessionBackupAsync()) is false. |
String |
getSessionCookieName() |
MemcachedBackupSession |
getSessionInternal(String sessionId) |
Map<String,org.apache.catalina.Session> |
getSessionsInternal() |
String[] |
getSetCookieHeaders(org.apache.catalina.connector.Response response) |
String |
getString(String key) |
String |
getString(String key,
Object... args) |
void |
incrementRejectedSessions() |
void |
incrementSessionCounter() |
boolean |
isEnabled()
Specifies, if msm is enabled or not.
|
boolean |
isInitialized() |
boolean |
isMaxInactiveIntervalSet() |
boolean |
isSessionBackupAsync()
Specifies if the session shall be stored asynchronously in memcached as
MemcachedClient.set(String, int, Object) supports it. |
boolean |
isSticky() |
void |
load() |
MemcachedBackupSession |
newMemcachedBackupSession() |
Principal |
readPrincipal(ObjectInputStream ois) |
void |
remove(org.apache.catalina.Session session,
boolean update) |
void |
removeInternal(org.apache.catalina.Session session,
boolean update) |
void |
setBackupThreadCount(int backupThreadCount)
Specifies the number of threads that are used if
setSessionBackupAsync(boolean)
is set to true. |
void |
setCopyCollectionsForSerialization(boolean copyCollectionsForSerialization)
Specifies, if iterating over collection elements shall be done on a copy
of the collection or on the collection itself.
|
void |
setCustomConverter(String customConverterClassNames)
Custom converter allow you to provide custom serialization of application specific
types.
|
void |
setEnabled(boolean enabled)
Enable/disable memcached-session-manager (default
true / enabled). |
void |
setEnableStatistics(boolean enableStatistics)
Specifies if statistics (like number of requests with/without session) shall be
gathered.
|
void |
setFailoverNodes(String failoverNodes)
The node ids of memcached nodes, that shall only be used for session
backup by this tomcat/manager, if there are no other memcached nodes
left.
|
void |
setLockingMode(LockingStrategy.LockingMode lockingMode,
Pattern uriPattern,
boolean storeSecondaryBackup) |
void |
setLockingMode(String lockingMode)
Sets the session locking mode.
|
void |
setMaxInactiveInterval(int interval) |
void |
setMemcachedNodes(String memcachedNodes)
Set the memcached nodes space or comma separated.
|
void |
setMemcachedProtocol(String memcachedProtocol)
Specifies the memcached protocol to use, either "text" (default) or "binary".
|
void |
setOperationTimeout(long operationTimeout) |
void |
setPassword(String password) |
void |
setRequestUriIgnorePattern(String requestUriIgnorePattern)
Set the regular expression for request uris to ignore for session backup.
|
void |
setSessionAttributeFilter(String sessionAttributeFilter)
Set the pattern used for including session attributes to a session-backup.
|
void |
setSessionBackupAsync(boolean sessionBackupAsync)
Specifies if the session shall be stored asynchronously in memcached as
MemcachedClient.set(String, int, Object) supports it. |
void |
setSessionBackupTimeout(int sessionBackupTimeout)
The timeout in milliseconds after that a session backup is considered as
beeing failed.
|
void |
setSticky(boolean sticky) |
void |
setStorageKeyPrefix(String storageKeyPrefix) |
void |
setTranscoderFactoryClass(String transcoderFactoryClassName)
The class of the factory that creates the
Transcoder to use for serializing/deserializing
sessions to/from memcached (requires a default/no-args constructor). |
void |
setUsername(String username) |
void |
startInternal() |
void |
stopInternal() |
void |
unload() |
void |
writePrincipal(Principal principal,
ObjectOutputStream oos) |
add, addPropertyChangeListener, findSessions, getActiveSessions, getClassName, getContainer, getCreationTime, getCreationTimestamp, getDistributable, getDomainInternal, getDuplicates, getEngine, getExpiredSessions, getJvmRoute, getLastAccessedTime, getLastAccessedTimestamp, getMaxActive, getMaxActiveSessions, getNewSession, getObjectNameKeyProperties, getProcessExpiresFrequency, getProcessingTime, getRejectedSessions, getSecureRandomAlgorithm, getSecureRandomClass, getSecureRandomProvider, getSession, getSessionAttribute, getSessionAttributeNameFilter, getSessionAttributeNamePattern, getSessionAttributeValueClassNameFilter, getSessionAttributeValueClassNamePattern, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdGenerator, getSessionIdLength, getSessionMaxAliveTime, getThisAccessedTime, getThisAccessedTimestamp, getWarnOnSessionAttributeFilterFailure, initInternal, listSessionIds, processExpires, remove, removePropertyChangeListener, setContainer, setDistributable, setDuplicates, setExpiredSessions, setMaxActive, setMaxActiveSessions, setProcessExpiresFrequency, setProcessingTime, setSecureRandomAlgorithm, setSecureRandomClass, setSecureRandomProvider, setSessionAttributeNameFilter, setSessionAttributeValueClassNameFilter, setSessionCounter, setSessionIdGenerator, setSessionIdLength, setSessionMaxAliveTime, setWarnOnSessionAttributeFilterFailure, toString, updateSessionMaxAliveTime, willAttributeDistributedestroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregisteraddLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, init, removeLifecycleListener, setState, setState, start, stopclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stopgetJvmRoute, getMaxActiveSessions, getProcessExpiresFrequency, setProcessExpiresFrequencyadd, addPropertyChangeListener, findSessions, getActiveSessions, getContainer, getDistributable, getExpiredSessions, getMaxActive, getRejectedSessions, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdLength, getSessionMaxAliveTime, remove, removePropertyChangeListener, setContainer, setDistributable, setExpiredSessions, setMaxActive, setSessionCounter, setSessionIdLength, setSessionMaxAliveTime, willAttributeDistributeprotected static final String NAME
protected final org.apache.juli.logging.Log _log
protected MemcachedSessionService _msm
public String getInfo()
<description>/<version>.getInfo in interface org.apache.catalina.ManagergetInfo in class org.apache.catalina.session.ManagerBasepublic String getName()
getName in class org.apache.catalina.session.ManagerBasepublic void load()
throws ClassNotFoundException,
IOException
load in interface org.apache.catalina.ManagerClassNotFoundExceptionIOExceptionpublic void unload()
throws IOException
unload in interface org.apache.catalina.ManagerIOExceptionpublic MemcachedBackupSession createSession(String sessionId)
createSession in interface org.apache.catalina.ManagercreateSession in class org.apache.catalina.session.ManagerBasepublic MemcachedBackupSession createEmptySession()
createEmptySession in interface org.apache.catalina.ManagercreateEmptySession in class org.apache.catalina.session.ManagerBasepublic MemcachedBackupSession newMemcachedBackupSession()
newMemcachedBackupSession in interface MemcachedSessionService.SessionManagerpublic String generateSessionId()
generateSessionId in interface MemcachedSessionService.SessionManagergenerateSessionId in class org.apache.catalina.session.ManagerBasepublic void expireSession(String sessionId)
expireSession in interface MemcachedSessionService.SessionManagerexpireSession in class org.apache.catalina.session.ManagerBasepublic void remove(org.apache.catalina.Session session,
boolean update)
remove in interface org.apache.catalina.Managerremove in class org.apache.catalina.session.ManagerBasepublic void removeInternal(org.apache.catalina.Session session,
boolean update)
removeInternal in interface MemcachedSessionService.SessionManagerpublic org.apache.catalina.Session findSession(String id) throws IOException
null.findSession in interface org.apache.catalina.ManagerfindSession in class org.apache.catalina.session.ManagerBaseid - The session id for the session to be returnednull if no session was found locally
or in memcached.IllegalStateException - if a new session cannot be instantiated for any reasonIOException - if an input/output error occurs while processing this
requestpublic void changeSessionId(org.apache.catalina.Session session)
changeSessionId in interface org.apache.catalina.ManagerchangeSessionId in class org.apache.catalina.session.ManagerBasepublic boolean isMaxInactiveIntervalSet()
isMaxInactiveIntervalSet in interface MemcachedSessionService.SessionManagerpublic int getMaxInactiveInterval()
getMaxInactiveInterval in interface MemcachedSessionService.SessionManagergetMaxInactiveInterval in interface org.apache.catalina.ManagergetMaxInactiveInterval in class org.apache.catalina.session.ManagerBasepublic void setMaxInactiveInterval(int interval)
setMaxInactiveInterval in interface MemcachedSessionService.SessionManagersetMaxInactiveInterval in interface org.apache.catalina.ManagersetMaxInactiveInterval in class org.apache.catalina.session.ManagerBasepublic void setMemcachedNodes(String memcachedNodes)
E.g. n1.localhost:11211 n2.localhost:11212
When the memcached nodes are set when this manager is already initialized, the new configuration will be loaded.
setMemcachedNodes in interface MemcachedSessionService.SessionManagermemcachedNodes - the memcached node definitions, whitespace or comma separatedpublic String getMemcachedNodes()
This getter is there to make this configuration accessible via jmx.
public void setFailoverNodes(String failoverNodes)
E.g. n1 n2
When the failover nodes are set when this manager is already initialized, the new configuration will be loaded.
setFailoverNodes in interface MemcachedSessionService.SessionManagerfailoverNodes - the failoverNodes to set, whitespace or comma separatedpublic String getFailoverNodes()
This getter is there to make this configuration accessible via jmx.
public void setRequestUriIgnorePattern(String requestUriIgnorePattern)
E.g. .*\.(png|gif|jpg|css|js)$
requestUriIgnorePattern - the requestUriIgnorePattern to set@CheckForNull public String getSessionAttributeFilter()
public void setSessionAttributeFilter(@Nullable String sessionAttributeFilter)
E.g. ^(userName|sessionHistory)$
sessionAttributeFilter - the sessionAttributeNames to setpublic void setTranscoderFactoryClass(String transcoderFactoryClassName)
Transcoder to use for serializing/deserializing
sessions to/from memcached (requires a default/no-args constructor).
The default value is the JavaSerializationTranscoderFactory class
(used if this configuration attribute is not specified).
After the TranscoderFactory instance was created from the specified class,
TranscoderFactory.setCopyCollectionsForSerialization(boolean)
will be invoked with the currently set copyCollectionsForSerialization propery, which
has either still the default value (false) or the value provided via
setCopyCollectionsForSerialization(boolean).
transcoderFactoryClassName - the TranscoderFactory class name.public void setCopyCollectionsForSerialization(boolean copyCollectionsForSerialization)
false
(used if this configuration attribute is not specified).
This option can be useful if you have multiple requests running in
parallel for the same session (e.g. AJAX) and you are using
non-thread-safe collections (e.g. ArrayList or
HashMap). In this case, your application might modify a
collection while it's being serialized for backup in memcached.
Note: This must be supported by the TranscoderFactory
specified via setTranscoderFactoryClass(String): after the TranscoderFactory instance
was created from the specified class, TranscoderFactory.setCopyCollectionsForSerialization(boolean)
will be invoked with the provided copyCollectionsForSerialization value.
copyCollectionsForSerialization - true, if iterating over collection elements shall be done
on a copy of the collection, false if the collections own iterator
shall be used.public void setCustomConverter(String customConverterClassNames)
This option is useful if reflection based serialization is very verbose and you want to provide a more efficient serialization for a specific type.
Note: This must be supported by the TranscoderFactory
specified via setTranscoderFactoryClass(String): after the TranscoderFactory instance
was created from the specified class, TranscoderFactory.setCustomConverterClassNames(String[])
is invoked with the provided custom converter class names.
Requirements regarding the specific custom converter classes depend on the
actual serialization strategy, but a common requirement would be that they must
provide a default/no-args constructor.
For more details have a look at
SerializationStrategies.
customConverterClassNames - a list of class names separated by commapublic void setEnableStatistics(boolean enableStatistics)
true.
Statistics will be available via jmx and the Manager mbean ( e.g. in the jconsole mbean tab open the attributes node of the Catalina/Manager/<context-path>/<host name> mbean and check for msmStat* values.
enableStatistics - true if statistics shall be gathered.public void setBackupThreadCount(int backupThreadCount)
setSessionBackupAsync(boolean)
is set to true.backupThreadCount - the number of threads to use for session backup.public int getBackupThreadCount()
public void setMemcachedProtocol(String memcachedProtocol)
memcachedProtocol - one of "text" or "binary".public void setEnabled(boolean enabled)
throws IllegalStateException
true / enabled).
If disabled, sessions are neither looked up in memcached nor stored in memcached.setEnabled in interface MemcachedSessionService.SessionManagerenabled - specifies if msm shall be disabled or not.IllegalStateException - it's not allowed to disable this session manager when running in non-sticky mode.public boolean isEnabled()
true if enabled, otherwise false.public void setSticky(boolean sticky)
setSticky in interface MemcachedSessionService.SessionManagerpublic boolean isSticky()
public void setOperationTimeout(long operationTimeout)
setOperationTimeout in interface MemcachedSessionService.SessionManagerpublic long getOperationTimeout()
public void setLockingMode(@Nullable String lockingMode)
none - does not lock the session at all (default for non-sticky sessions).all - the session is locked for each request accessing the session.auto - locks the session for each request except for those the were detected to access the session only readonly.uriPattern:<regexp> - locks the session for each request with a request uri (with appended querystring) matching
the provided regular expression.setLockingMode in interface MemcachedSessionService.SessionManagerpublic void setLockingMode(@Nullable LockingStrategy.LockingMode lockingMode, @Nullable Pattern uriPattern, boolean storeSecondaryBackup)
setLockingMode in interface MemcachedSessionService.SessionManagerpublic void setUsername(String username)
setUsername in interface MemcachedSessionService.SessionManagerpublic void setPassword(String password)
setPassword in interface MemcachedSessionService.SessionManagerpublic void setStorageKeyPrefix(String storageKeyPrefix)
public void startInternal()
throws org.apache.catalina.LifecycleException
startInternal in class org.apache.catalina.session.ManagerBaseorg.apache.catalina.LifecycleExceptionpublic void stopInternal()
throws org.apache.catalina.LifecycleException
stopInternal in class org.apache.catalina.session.ManagerBaseorg.apache.catalina.LifecycleExceptionpublic void backgroundProcess()
backgroundProcess in interface org.apache.catalina.ManagerbackgroundProcess in class org.apache.catalina.session.ManagerBasepublic void setSessionBackupAsync(boolean sessionBackupAsync)
MemcachedClient.set(String, int, Object) supports it. If this is
false, the timeout set via setSessionBackupTimeout(int) is
evaluated. If this is true, the setBackupThreadCount(int)
is evaluated.
By default this property is set to true - the session
backup is performed asynchronously.
sessionBackupAsync - the sessionBackupAsync to setpublic boolean isSessionBackupAsync()
MemcachedClient.set(String, int, Object) supports it. If this is
false, the timeout from getSessionBackupTimeout() is
evaluated.public void setSessionBackupTimeout(int sessionBackupTimeout)
This property is only evaluated if sessions are stored synchronously (set
via setSessionBackupAsync(boolean)).
The default value is 100 millis.
sessionBackupTimeout - the sessionBackupTimeout to set (milliseconds)public long getSessionBackupTimeout()
#getSessionBackupAsync()) is false.public long getMsmStatNumBackupFailures()
Statistics.getRequestsWithBackupFailure()public long getMsmStatNumTomcatFailover()
Statistics.getRequestsWithMemcachedFailover()public long getMsmStatNumMemcachedFailover()
Statistics.getRequestsWithMemcachedFailover()public long getMsmStatNumRequestsWithoutSession()
Statistics.getRequestsWithoutSession()public long getMsmStatNumNoSessionAccess()
Statistics.getRequestsWithoutSessionAccess()public long getMsmStatNumNoAttributesAccess()
Statistics.getRequestsWithoutAttributesAccess()public long getMsmStatNumNoSessionModification()
Statistics.getRequestsWithoutSessionModification()public long getMsmStatNumRequestsWithSession()
Statistics.getRequestsWithSession()public long getMsmStatNumNonStickySessionsPingFailed()
public long getMsmStatNumNonStickySessionsReadOnlyRequest()
public String[] getMsmStatAttributesSerializationInfo()
public String[] getMsmStatEffectiveBackupInfo()
public String[] getMsmStatBackupInfo()
public String[] getMsmStatSessionsLoadedFromMemcachedInfo()
getMsmStatSessionDeserializationInfo(),
getMsmStatNonStickyAfterLoadFromMemcachedInfo()public String[] getMsmStatSessionsDeletedFromMemcachedInfo()
getMsmStatNonStickyAfterDeleteFromMemcachedInfo()public String[] getMsmStatSessionDeserializationInfo()
public String[] getMsmStatCachedDataSizeInfo()
public String[] getMsmStatMemcachedUpdateInfo()
public String[] getMsmStatNonStickyAcquireLockInfo()
public String[] getMsmStatNonStickyAcquireLockFailureInfo()
public String[] getMsmStatNonStickyReleaseLockInfo()
public String[] getMsmStatNonStickyOnBackupWithoutLoadedSessionInfo()
public String[] getMsmStatNonStickyAfterBackupInfo()
public String[] getMsmStatNonStickyAfterLoadFromMemcachedInfo()
public String[] getMsmStatNonStickyAfterDeleteFromMemcachedInfo()
public String getSessionCookieName()
getSessionCookieName in interface MemcachedSessionService.SessionManagerpublic MemcachedBackupSession getSessionInternal(String sessionId)
getSessionInternal in interface MemcachedSessionService.SessionManagerpublic Map<String,org.apache.catalina.Session> getSessionsInternal()
getSessionsInternal in interface MemcachedSessionService.SessionManagerpublic String getString(String key)
getString in interface MemcachedSessionService.SessionManagerpublic void incrementSessionCounter()
incrementSessionCounter in interface MemcachedSessionService.SessionManagerpublic void incrementRejectedSessions()
incrementRejectedSessions in interface MemcachedSessionService.SessionManagerpublic boolean isInitialized()
isInitialized in interface MemcachedSessionService.SessionManagerpublic String getString(String key, Object... args)
getString in interface MemcachedSessionService.SessionManager@Nonnull public org.apache.catalina.Context getContext()
getContext in interface MemcachedSessionService.SessionManagerpublic ClassLoader getContainerClassLoader()
getContainerClassLoader in interface MemcachedSessionService.SessionManagerpublic void writePrincipal(@Nonnull Principal principal, @Nonnull ObjectOutputStream oos) throws IOException
writePrincipal in interface MemcachedSessionService.SessionManagerIOExceptionpublic Principal readPrincipal(ObjectInputStream ois) throws ClassNotFoundException, IOException
readPrincipal in interface MemcachedSessionService.SessionManagerClassNotFoundExceptionIOExceptionpublic boolean contextHasFormBasedSecurityConstraint()
contextHasFormBasedSecurityConstraint in interface MemcachedSessionService.SessionManagerpublic MemcachedSessionService getMemcachedSessionService()
getMemcachedSessionService in interface MemcachedSessionService.SessionManagerpublic String[] getSetCookieHeaders(org.apache.catalina.connector.Response response)
getSetCookieHeaders in interface MemcachedSessionService.SessionManagerCopyright © 2009-2016. All Rights Reserved.