Class MongoIndexedSessionRepository
java.lang.Object
org.springframework.session.data.mongo.MongoIndexedSessionRepository
- All Implemented Interfaces:
org.springframework.beans.factory.Aware,org.springframework.beans.factory.InitializingBean,org.springframework.context.ApplicationEventPublisherAware,org.springframework.session.FindByIndexNameSessionRepository<org.springframework.session.data.mongo.MongoSession>,org.springframework.session.SessionRepository<org.springframework.session.data.mongo.MongoSession>
public class MongoIndexedSessionRepository
extends Object
implements org.springframework.session.FindByIndexNameSessionRepository<org.springframework.session.data.mongo.MongoSession>, org.springframework.context.ApplicationEventPublisherAware, org.springframework.beans.factory.InitializingBean
Session repository implementation which stores sessions in Mongo. Uses
AbstractMongoSessionConverter to transform session objects from/to native Mongo
representation (DBObject). Repository is also responsible for removing expired
sessions from database. Cleanup is done every minute.- Since:
- 2.2.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringthe default collection name for storing session.static final intDeprecated.Fields inherited from interface org.springframework.session.FindByIndexNameSessionRepository
PRINCIPAL_NAME_INDEX_NAME -
Constructor Summary
ConstructorsConstructorDescriptionMongoIndexedSessionRepository(org.springframework.data.mongodb.core.MongoOperations mongoOperations) -
Method Summary
Modifier and TypeMethodDescriptionvoidorg.springframework.session.data.mongo.MongoSessionvoiddeleteById(String id) org.springframework.session.data.mongo.MongoSessionfindByIndexNameAndIndexValue(String indexName, String indexValue) Currently this repository allows only querying againstPRINCIPAL_NAME_INDEX_NAME.voidsave(org.springframework.session.data.mongo.MongoSession session) voidsetApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher eventPublisher) voidsetCollectionName(String collectionName) voidsetDefaultMaxInactiveInterval(Duration defaultMaxInactiveInterval) Set the maximum inactive interval in seconds between requests before newly created sessions will be invalidated.voidsetMaxInactiveIntervalInSeconds(Integer defaultMaxInactiveInterval) Deprecated.since 3.0.0, in favor ofsetDefaultMaxInactiveInterval(Duration)voidsetMongoSessionConverter(AbstractMongoSessionConverter mongoSessionConverter) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.session.FindByIndexNameSessionRepository
findByPrincipalName
-
Field Details
-
DEFAULT_INACTIVE_INTERVAL
Deprecated.since 3.0.0 in favor ofMapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDSThe default time period in seconds in which a session will expire.- See Also:
-
DEFAULT_COLLECTION_NAME
the default collection name for storing session.- See Also:
-
-
Constructor Details
-
MongoIndexedSessionRepository
public MongoIndexedSessionRepository(org.springframework.data.mongodb.core.MongoOperations mongoOperations)
-
-
Method Details
-
createSession
public org.springframework.session.data.mongo.MongoSession createSession()- Specified by:
createSessionin interfaceorg.springframework.session.SessionRepository<org.springframework.session.data.mongo.MongoSession>
-
save
public void save(org.springframework.session.data.mongo.MongoSession session) - Specified by:
savein interfaceorg.springframework.session.SessionRepository<org.springframework.session.data.mongo.MongoSession>
-
findById
- Specified by:
findByIdin interfaceorg.springframework.session.SessionRepository<org.springframework.session.data.mongo.MongoSession>
-
findByIndexNameAndIndexValue
public Map<String,org.springframework.session.data.mongo.MongoSession> findByIndexNameAndIndexValue(String indexName, String indexValue) Currently this repository allows only querying againstPRINCIPAL_NAME_INDEX_NAME.- Specified by:
findByIndexNameAndIndexValuein interfaceorg.springframework.session.FindByIndexNameSessionRepository<org.springframework.session.data.mongo.MongoSession>- Parameters:
indexName- the name if the index (i.e.FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME)indexValue- the value of the index to search for.- Returns:
- sessions map
-
deleteById
- Specified by:
deleteByIdin interfaceorg.springframework.session.SessionRepository<org.springframework.session.data.mongo.MongoSession>
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean
-
setApplicationEventPublisher
public void setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher eventPublisher) - Specified by:
setApplicationEventPublisherin interfaceorg.springframework.context.ApplicationEventPublisherAware
-
setDefaultMaxInactiveInterval
Set the maximum inactive interval in seconds between requests before newly created sessions will be invalidated. A negative time indicates that the session will never time out. The default is 30 minutes.- Parameters:
defaultMaxInactiveInterval- the default maxInactiveInterval
-
setMaxInactiveIntervalInSeconds
@Deprecated(since="3.0.0") public void setMaxInactiveIntervalInSeconds(Integer defaultMaxInactiveInterval) Deprecated.since 3.0.0, in favor ofsetDefaultMaxInactiveInterval(Duration)Set the maximum inactive interval in seconds between requests before newly created sessions will be invalidated. A negative time indicates that the session will never time out. The default is 1800 (30 minutes).- Parameters:
defaultMaxInactiveInterval- the default maxInactiveInterval in seconds
-
setCollectionName
-
setMongoSessionConverter
-
MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS