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 Details

    • DEFAULT_INACTIVE_INTERVAL

      @Deprecated public static final int DEFAULT_INACTIVE_INTERVAL
      Deprecated.
      since 3.0.0 in favor of MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS
      The default time period in seconds in which a session will expire.
      See Also:
    • DEFAULT_COLLECTION_NAME

      public static final String 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:
      createSession in interface org.springframework.session.SessionRepository<org.springframework.session.data.mongo.MongoSession>
    • save

      public void save(org.springframework.session.data.mongo.MongoSession session)
      Specified by:
      save in interface org.springframework.session.SessionRepository<org.springframework.session.data.mongo.MongoSession>
    • findById

      @Nullable public org.springframework.session.data.mongo.MongoSession findById(String id)
      Specified by:
      findById in interface org.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 against PRINCIPAL_NAME_INDEX_NAME.
      Specified by:
      findByIndexNameAndIndexValue in interface org.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

      public void deleteById(String id)
      Specified by:
      deleteById in interface org.springframework.session.SessionRepository<org.springframework.session.data.mongo.MongoSession>
    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • setApplicationEventPublisher

      public void setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher eventPublisher)
      Specified by:
      setApplicationEventPublisher in interface org.springframework.context.ApplicationEventPublisherAware
    • setDefaultMaxInactiveInterval

      public void setDefaultMaxInactiveInterval(Duration defaultMaxInactiveInterval)
      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.
      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

      public void setCollectionName(String collectionName)
    • setMongoSessionConverter

      public void setMongoSessionConverter(AbstractMongoSessionConverter mongoSessionConverter)