Class MapSession

java.lang.Object
org.springframework.session.MapSession
All Implemented Interfaces:
Serializable, Session

public final class MapSession extends Object implements Session, Serializable

A Session implementation that is backed by a Map. The defaults for the properties are:

  • id - a secure random generated id
  • creationTime - the moment the MapSession was instantiated
  • lastAccessedTime - the moment the MapSession was instantiated
  • maxInactiveInterval - 30 minutes

This implementation has no synchronization, so it is best to use the copy constructor when working on multiple threads.

Since:
1.0
See Also:
  • Field Details

  • Constructor Details

    • MapSession

      public MapSession()
      Creates a new instance with a secure randomly generated identifier.
    • MapSession

      public MapSession(SessionIdGenerator sessionIdGenerator)
      Creates a new instance using the specified SessionIdGenerator to generate the session id.
      Parameters:
      sessionIdGenerator - the SessionIdGenerator to use.
      Since:
      3.2
    • MapSession

      public MapSession(String id)
      Creates a new instance with the specified id. This is preferred to the default constructor when the id is known to prevent unnecessary consumption on entropy which can be slow.
      Parameters:
      id - the identifier to use
    • MapSession

      public MapSession(Session session)
      Creates a new instance from the provided Session.
      Parameters:
      session - the Session to initialize this Session with. Cannot be null.
  • Method Details

    • setLastAccessedTime

      public void setLastAccessedTime(Instant lastAccessedTime)
      Description copied from interface: Session
      Sets the last accessed time.
      Specified by:
      setLastAccessedTime in interface Session
      Parameters:
      lastAccessedTime - the last accessed time
    • getCreationTime

      public Instant getCreationTime()
      Description copied from interface: Session
      Gets the time when this session was created.
      Specified by:
      getCreationTime in interface Session
      Returns:
      the time when this session was created.
    • getId

      public String getId()
      Description copied from interface: Session
      Gets a unique string that identifies the Session.
      Specified by:
      getId in interface Session
      Returns:
      a unique string that identifies the Session
    • getOriginalId

      public String getOriginalId()
      Get the original session id.
      Returns:
      the original session id
      See Also:
    • changeSessionId

      public String changeSessionId()
      Description copied from interface: Session
      Changes the session id. After invoking the Session.getId() will return a new identifier.
      Specified by:
      changeSessionId in interface Session
      Returns:
      the new session id which Session.getId() will now return
    • getLastAccessedTime

      public Instant getLastAccessedTime()
      Description copied from interface: Session
      Gets the last time this Session was accessed.
      Specified by:
      getLastAccessedTime in interface Session
      Returns:
      the last time the client sent a request associated with the session
    • setMaxInactiveInterval

      public void setMaxInactiveInterval(Duration interval)
      Description copied from interface: Session
      Sets the maximum inactive interval between requests before this session will be invalidated. A negative time indicates that the session will never timeout.
      Specified by:
      setMaxInactiveInterval in interface Session
      Parameters:
      interval - the amount of time that the Session should be kept alive between client requests.
    • getMaxInactiveInterval

      public Duration getMaxInactiveInterval()
      Description copied from interface: Session
      Gets the maximum inactive interval between requests before this session will be invalidated. A negative time indicates that the session will never timeout.
      Specified by:
      getMaxInactiveInterval in interface Session
      Returns:
      the maximum inactive interval between requests before this session will be invalidated. A negative time indicates that the session will never timeout.
    • isExpired

      public boolean isExpired()
      Description copied from interface: Session
      Returns true if the session is expired.
      Specified by:
      isExpired in interface Session
      Returns:
      true if the session is expired, else false.
    • getAttribute

      public <T> T getAttribute(String attributeName)
      Description copied from interface: Session
      Gets the Object associated with the specified name or null if no Object is associated to that name.
      Specified by:
      getAttribute in interface Session
      Type Parameters:
      T - the return type of the attribute
      Parameters:
      attributeName - the name of the attribute to get
      Returns:
      the Object associated with the specified name or null if no Object is associated to that name
    • getAttributeNames

      public Set<String> getAttributeNames()
      Description copied from interface: Session
      Gets the attribute names that have a value associated with it. Each value can be passed into Session.getAttribute(String) to obtain the attribute value.
      Specified by:
      getAttributeNames in interface Session
      Returns:
      the attribute names that have a value associated with it.
      See Also:
    • setAttribute

      public void setAttribute(String attributeName, Object attributeValue)
      Description copied from interface: Session
      Sets the attribute value for the provided attribute name. If the attributeValue is null, it has the same result as removing the attribute with Session.removeAttribute(String) .
      Specified by:
      setAttribute in interface Session
      Parameters:
      attributeName - the attribute name to set
      attributeValue - the value of the attribute to set. If null, the attribute will be removed.
    • removeAttribute

      public void removeAttribute(String attributeName)
      Description copied from interface: Session
      Removes the attribute with the provided attribute name.
      Specified by:
      removeAttribute in interface Session
      Parameters:
      attributeName - the name of the attribute to remove
    • setCreationTime

      public void setCreationTime(Instant creationTime)
      Sets the time that this Session was created. The default is when the Session was instantiated.
      Parameters:
      creationTime - the time that this Session was created.
    • setId

      public void setId(String id)
      Sets the identifier for this Session. The id should be a secure random generated value to prevent malicious users from guessing this value. The default is a secure random generated identifier.
      Parameters:
      id - the identifier for this session.
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • setSessionIdGenerator

      public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator)
      Sets the SessionIdGenerator to use when generating a new session id.
      Parameters:
      sessionIdGenerator - the SessionIdGenerator to use.
      Since:
      3.2