Class Session

java.lang.Object
ch.autumo.beetroot.Session
All Implemented Interfaces:
Serializable

public class Session extends Object implements Serializable
User session.
See Also:
  • Constructor Details

    • Session

      public Session(String sessionID)
      New session with given session id '__SESSION_ID__' or what is configured.
      Parameters:
      sessionID - session id
  • Method Details

    • getCreated

      public Date getCreated()
      Date and time when the session has been created.
      Returns:
      creation date/time
    • refresh

      public void refresh()
      Refresh session to save from timeout.
    • isOlderThanSessionTimeout

      public boolean isOlderThanSessionTimeout()
      Checks if this session is older than the timeout.
      Returns:
      true if so
    • createIdPair

      public String createIdPair(int origId, String entity)
      Crate a new ID pair. Remove old ID's if a pair is found associated to the original ID given. 2 ID pairs are 2 ID key/value pairs. Modify ID is the protected web GUI id.
      Parameters:
      origId - original id (database id)
      entity - entity
      Returns:
      newly created modify ID
    • getModifyId

      public String getModifyId(int origId, String entity)
      Get modified ID based on original database ID.
      Parameters:
      origId - original database ID
      entity - entity
      Returns:
      modified ID
    • getOrigId

      public int getOrigId(String modifyId, String entity)
      Get original database ID based on modified ID.
      Parameters:
      modifyId - modified ID
      entity - entity
      Returns:
      original database ID
    • removeIds

      public void removeIds(String modifyId, String entity)
      Remove an ID pair by given modify ID and entity.
      Parameters:
      modifyId - modify ID
      entity - entity
    • removeAllIds

      public void removeAllIds()
      Clean session from all ID pairs!
    • setUserData

      public void setUserData(User user, String roles, String permissions)
      Set user data. Use user or or user roles depending if you use the simple role management or the full User-Role ACL.
      Parameters:
      user - user
      roles - user roles (comma-separated roles)
      permissions - user permissions (comma-separated permissions)
    • clearUserDataExceptLanguage

      public void clearUserDataExceptLanguage()
      Clear all user data within session except a previously set language.
    • clearUserData

      public void clearUserData()
      Clear all user data within session.
    • deleteAllParameters

      public void deleteAllParameters()
      Delete all parameters in this session
    • getSessionId

      public String getSessionId()
      Get session ID.
      Returns:
      session ID
    • setUserSettings

      public void setUserSettings(Map<String,String> settingsMap)
      Set user settings map.
      Parameters:
      settingsMap - user settings map
    • getUserSettings

      public Map<String,String> getUserSettings()
      Get user settings map.
      Returns:
      user settings map
    • getUserSetting

      public String getUserSetting(String key)
      Get one user setting.
      Parameters:
      key - key
      Returns:
      user setting
    • addOrUpdateUserSetting

      public void addOrUpdateUserSetting(String key, String value)
      Add or update user setting.
      Parameters:
      key - key
      value - value
    • deleteUserSetting

      public String deleteUserSetting(String key)
      Delete user setting.
      Parameters:
      key - key
      Returns:
      old value of deleted entry
    • getUserId

      public int getUserId()
      Get user DB id. Returns -1 is no user is present.
      Returns:
      user DB id
    • getUserRoles

      public List<String> getUserRoles()
      Get user roles (DB role table).
      Returns:
      user roles
    • hasUserRole

      public boolean hasUserRole(String role)
      Check if user has a role (DB role table).
      Parameters:
      role - user role
      Returns:
      true, if so
    • getUserPermissions

      public List<String> getUserPermissions()
      Get user permissions.
      Returns:
      user permissions
    • hasUserPermission

      public boolean hasUserPermission(String perm)
      Check if user has a permission (DB role table).
      Parameters:
      perm - user permission
      Returns:
      true, if so
    • getUser

      public User getUser()
      Get user.
      Returns:
      user or null
    • getUserName

      public String getUserName()
      Get user name.
      Returns:
      user name
    • getUserEmail

      public String getUserEmail()
      Get user email.
      Returns:
      user email
    • getUserSecretKey

      public String getUserSecretKey()
      Get user secret key.
      Returns:
      user secret key
    • getUTwoFa

      public boolean getUTwoFa()
      User has 2FA?
      Returns:
      user has 2FA?
    • getUserLang

      public String getUserLang()
      Get user language.
      Returns:
      user language
    • setUserLang

      public void setUserLang(String lang)
      Set user language.
      Parameters:
      lang - user language (ISO code 2 length)
    • setTwoFaLogin

      public void setTwoFaLogin()
      Set 2FA state to true.
    • isTwoFaLoginOk

      public boolean isTwoFaLoginOk()
      Is 2FA state set?
      Returns:
      true is so
    • resetTwoFaLogin

      public void resetTwoFaLogin()
      Reset 2FA state.
    • addFiles

      public void addFiles(Map<String,String> files)
      Add uploaded files info .
      Parameters:
      files - uploaded file info
    • consumeFiles

      public Map<String,String> consumeFiles()
      Get uploaded files info
      Returns:
      uploaded files info
    • getUserFullNameOrUserName

      public String getUserFullNameOrUserName()
      Get full user name, can be first name or last name or both and first or last name is not present, the user name.
      Returns:
      full name or user name
    • getFormCsrfToken

      public String getFormCsrfToken()
      Get CSRF token.
      Returns:
      CSRF token
    • setFormCsrfToken

      public void setFormCsrfToken(String token)
      Set CSRF token.
      Parameters:
      token - CSRF token
    • setInternalTOTPCode

      public void setInternalTOTPCode(String genCode)
      Set internal generated 2FA code.
      Parameters:
      genCode - generated 2FA code
    • getInternalTOTPCode

      public String getInternalTOTPCode()
      Get internal generated 2FA code.
      Returns:
      internal generated 2FA code
    • clearInternalTOTPCode

      public void clearInternalTOTPCode()
      Delete internal generated 2FA code from session.
    • getMapValue

      public Serializable getMapValue(String mapKey, String key)
      Get map value.
      Parameters:
      mapKey - map key
      key - key
      Returns:
      value
    • setMapValue

      public void setMapValue(String mapKey, String key, String value)
      Set a key/value pair to a map. This will internally create the map first if non-existent.
      Parameters:
      mapKey - map key
      key - key
      value - add a value to the map and key
    • removeMap

      public void removeMap(String mapKey)
      Remove a specific map key.
      Parameters:
      mapKey - map key
    • get

      public Serializable get(String key)
      Get value.
      Parameters:
      key - key
      Returns:
      value
    • set

      public void set(String key, Serializable value)
      Set a key/value pair. They are persisted in the session file if the server is stopped; you have to house-keep these values!
      Parameters:
      key - key
      value - value
    • remove

      public void remove(String key)
      Remove a specific key.
      Parameters:
      key - key
    • destroy

      public void destroy(org.nanohttpd.protocols.http.content.CookieHandler cookies)
      Destroy session by given cookie handler holding the '__SESSION_ID__'.
      Parameters:
      cookies - cookie handler
    • destroyDelete

      public void destroyDelete(org.nanohttpd.protocols.http.content.CookieHandler cookies)
      Destroy session by given cookie handler holding the '__SESSION_ID__' and delete stored session.
      Parameters:
      cookies - cookie handler