public interface

WebAppSessionManager

implements WebSessionManager
com.microstrategy.web.app.WebAppSessionManager
Known Indirect Subclasses

Class Overview

This is the interface for the MicroStrategy Web session manager. This interface contains methods for all session management related functionality. It maintains a WebIServerSessionList of WebIServerSession objects. It has an active session, which is the session that all requests will be directed to.

Note that the standard calls that should be called on every page are restoreStateFromRequest and initActiveSessionFromRequest. These will ensure that the active session is set up to reflect any information passed in the state or saved in session variables or cookies. If a live session is expected, the validateSession method should be called after the above methods to ensure that the active session is live.

Summary

[Expand]
Inherited Constants
From interface com.microstrategy.utils.serialization.EnumWebPersistableState
Public Methods
abstract int buildLastMessageKey(String... serverName)
Create a GUID that is a combination of server/project info in order to maintain a keyed list of last message across server/project at client-side.
abstract void changeLocale()
Changes the locale on all sessions in a cluster with the active one to the setting which is set on the session's preferences.
abstract void changePassword(String oldPassword, String newPassword)
Changes the active session's password from the old password given to the new password.
abstract void changeSessionFlags()
Changes the session flags for the session.
abstract WebIServerSession createLoginFirstSession()
Creates a Login First session
abstract int getAvailableAuthModes(WebIServerSession session)
Returns the available authentication modes that may be used with this session.
abstract int getAvailableWebLoginModes(WebIServerSession session)
Returns the available web login modes that may be used with this session.
abstract String getKey()
Returns the key of the Session Manager.
abstract int getLastMessageKey()
Get cached message key that matches the last message id
abstract String getLastMsgIDFromCookie(int lastMsgKey)
Get last message ID based on given last message key
abstract WebIServerSession getLoginFirstSession()
Returns the existing Login First session (already created or restored).
abstract ArrayList getProjectsList()
Returns an ArrayList of ProjectInformation objects, which contain information about the projects we are connected to.
abstract ArrayList getProjectsList(boolean refresh)
Returns an ArrayList of ProjectInformation objects, which contain information about the projects we are connected to.
abstract WebIServerSession getSession(String server, int port, String project)
Returns the WebIServerSession for the given server/project.
abstract String getUserName()
Attempts to retrieve a printable user name for either the active session, or, if loginFirst is true, the credentials set on the Session Manager will be used to obtain the user name.
abstract boolean hasCredentials()
Returns whether this instance of the session manager contains credentials internally.
abstract WebIServerSession initActiveSessionFromRequest(ServletWebComponent component, boolean doNotInvalidateSession)
This method will examine the request, and attempt to either set the active session properly, or create a brand new session that will become the active session, if the request asks for a session on a server without a session and project already created on it.
abstract WebIServerSession initActiveSessionFromRequest(ServletWebComponent component)
This method will examine the request, and attempt to either set the active session properly, or create a brand new session that will become the active session, if the request asks for a session on a server without a session and project already created on it.
abstract WebIServerSession initActiveSessionFromRequest()
This method will examine the request, and attempt to either set the active session properly, or create a brand new session that will become the active session, if the request asks for a session on a server without a session and project already created on it.
abstract boolean isAdminUser()
Returns whether the active session's user is an administrative user or not.
abstract boolean isLoginFirstEnabled()
abstract boolean isSSOLoging()
abstract boolean needNewPswd()
Returns whether the user needs to update password or not.
abstract void removeActiveSession()
Removes the active session from the list, closing it if the external security manager setup on the application context says to do so.
abstract void removeAllSessions()
Removes all sessions from the list, closing them if the external security manager setup on the application context says to do so.
abstract void setCredentials(String uid, String pwd, int authMode)
Sets the credentials for the active session.
abstract void updateActiveSession(WebIServerSession wiss)
Sets passed session as the existing active session
abstract void validateSession(WebIServerSession session)
This method attempts to validate the given session.
abstract void validateSession(boolean refresh)
This method attempts to validate the active session.
abstract void validateSession()
This method attempts to validate the active session.
[Expand]
Inherited Methods
From interface com.microstrategy.utils.serialization.Persistable
From interface com.microstrategy.web.beans.RequestPersistable
From interface com.microstrategy.web.beans.WebSessionManager

Public Methods

public abstract int buildLastMessageKey (String... serverName)

Create a GUID that is a combination of server/project info in order to maintain a keyed list of last message across server/project at client-side.

Returns
  • {int}

public abstract void changeLocale ()

Changes the locale on all sessions in a cluster with the active one to the setting which is set on the session's preferences. This method will look at those preferences, and if they do not match the locale on the session, change the session locale, if we have enough information to recreate the session.

public abstract void changePassword (String oldPassword, String newPassword)

Changes the active session's password from the old password given to the new password.

Parameters
oldPassword The old password. Needed to confirm the correct user's identity.
newPassword The new password.
Throws
WebAppException Thrown if an error occurs when attempting to change password.

public abstract void changeSessionFlags ()

Changes the session flags for the session. This method will check the user session's prefrerences for the session and all sessions in the same cluster of servers, and if the current session flags are not the same as the session flags in the preferences, the session flags will be changed, if there exists enough information to recreate the session.

public abstract WebIServerSession createLoginFirstSession ()

Creates a Login First session

Returns
  • Login First session

public abstract int getAvailableAuthModes (WebIServerSession session)

Returns the available authentication modes that may be used with this session. A project name or ID (along with the residing server) should be specified prior to making this call if the intented login is to a project since authentication modes may be project specific.

Returns
  • the available authentication modes that may be used with this session.
Throws
WebAppException thrown if there was a problem getting the authentication modes.

public abstract int getAvailableWebLoginModes (WebIServerSession session)

Returns the available web login modes that may be used with this session. A project name or ID (along with the residing server) should be specified prior to making this call if the intented login is to a project since web login modes may be project specific.

Returns
  • the available web login modes that may be used with this session.
Throws
WebAppException thrown if there was a problem getting the web lgoin modes.

public abstract String getKey ()

Returns the key of the Session Manager. This value is used to store and retrieve the state of the Session Manager.

public abstract int getLastMessageKey ()

Get cached message key that matches the last message id

public abstract String getLastMsgIDFromCookie (int lastMsgKey)

Get last message ID based on given last message key

Returns
  • {String}

public abstract WebIServerSession getLoginFirstSession ()

Returns the existing Login First session (already created or restored). If there is no login first session yet, it will create one and return it.

Returns
  • Login First session

public abstract ArrayList getProjectsList ()

Returns an ArrayList of ProjectInformation objects, which contain information about the projects we are connected to. This method is the same as getProjectList(false).

Returns
Throws
WebAppException Thrown if an error occurs.

public abstract ArrayList getProjectsList (boolean refresh)

Returns an ArrayList of ProjectInformation objects, which contain information about the projects we are connected to.

Parameters
refresh A boolean variable indicates whether we should refresh the project list. If this parameter is false, and there is cached result of this call, we will return the last result, or throw the same exception as last time. If this parameter is true, we will ingore the cache and refresh the project list.
Returns
Throws
WebAppException Thrown if an error occurs.

public abstract WebIServerSession getSession (String server, int port, String project)

Returns the WebIServerSession for the given server/project. Will return null if the server is not connected (or cannot be auto-connected). It will also be made the current session.

Returns
  • The current active session.

public abstract String getUserName ()

Attempts to retrieve a printable user name for either the active session, or, if loginFirst is true, the credentials set on the Session Manager will be used to obtain the user name.

Returns
  • The user name for the user of the session manager.

public abstract boolean hasCredentials ()

Returns whether this instance of the session manager contains credentials internally. This will be true if setCredentials has been called since the creation or deserialization of this SessionManager object, or if loginFirst is true and the credentials have ever been set.

Returns
  • True if the session manager has credentials associated with it, false otherwise.

public abstract WebIServerSession initActiveSessionFromRequest (ServletWebComponent component, boolean doNotInvalidateSession)

This method will examine the request, and attempt to either set the active session properly, or create a brand new session that will become the active session, if the request asks for a session on a server without a session and project already created on it. Note that this method will, if a key or server/project/port is not found in the request, check with the ServletWebComponent to see what the current server/project/port is. This will return null if no server is specified, or the server is not connected (or cannot be auto-connected).

Parameters
component A ServletWebComponent object representing the servlet, which can be queried for the server, project, and port for the current request.
doNotInvalidateSession a flag to indacate whether to invalidate Session. Can be passed by AppTaskRequestContext
Returns
  • The WebIServerSession that is active after the call. This session is the one that is requested to be used by the variables passed as part of the request.
Throws
WebAppException Thrown if an error occurs.

public abstract WebIServerSession initActiveSessionFromRequest (ServletWebComponent component)

This method will examine the request, and attempt to either set the active session properly, or create a brand new session that will become the active session, if the request asks for a session on a server without a session and project already created on it. Note that this method will, if a key or server/project/port is not found in the request, check with the ServletWebComponent to see what the current server/project/port is. This will return null if no server is specified, or the server is not connected (or cannot be auto-connected).

Parameters
component A ServletWebComponent object representing the servlet, which can be queried for the server, project, and port for the current request.
Returns
  • The WebIServerSession that is active after the call. This session is the one that is requested to be used by the variables passed as part of the request.
Throws
WebAppException Thrown if an error occurs.

public abstract WebIServerSession initActiveSessionFromRequest ()

This method will examine the request, and attempt to either set the active session properly, or create a brand new session that will become the active session, if the request asks for a session on a server without a session and project already created on it.

Returns
  • The WebIServerSession that is active after the call. This session is the one that is requested to be used by the variables passed as part of the request.
Throws
WebAppException Thrown if an error occurs.

public abstract boolean isAdminUser ()

Returns whether the active session's user is an administrative user or not. This is checked via checking privileges.

Returns
  • True if the active session's user has administrative privileges, false otherwise.

public abstract boolean isLoginFirstEnabled ()

public abstract boolean isSSOLoging ()

public abstract boolean needNewPswd ()

Returns whether the user needs to update password or not.

Returns
  • true if new password is needed.

public abstract void removeActiveSession ()

Removes the active session from the list, closing it if the external security manager setup on the application context says to do so.

public abstract void removeAllSessions ()

Removes all sessions from the list, closing them if the external security manager setup on the application context says to do so.

public abstract void setCredentials (String uid, String pwd, int authMode)

Sets the credentials for the active session. If the login first functionality is enabled, then these credentials will be kept around until overridden and used for every session.

Parameters
uid The user ID of the login
pwd The password of the login
authMode The authentication mode of the credentials, from EnumDSSXMLAuthModes.
Throws
WebAppException Thrown if an error occurs.

public abstract void updateActiveSession (WebIServerSession wiss)

Sets passed session as the existing active session

Parameters
wiss the new IServer session

public abstract void validateSession (WebIServerSession session)

This method attempts to validate the given session. If the session cannot be validated, then it can also attempt to recover for a specific set of error conditions. If the session cannot be validated or recovered, this method will throw an exception. If an exception is not thrown, then the session is valid.

Parameters
session The session to validate.
Throws
WebAppException Thrown if the active session is confirmed to be invalid.

public abstract void validateSession (boolean refresh)

This method attempts to validate the active session. If the session cannot be validated, then it can also attempt to recover for a specific set of error conditions. If the session cannot be validated or recovered, this method will throw an exception. If an exception is not thrown, then the session is valid.

Parameters
refresh The boolean vairable indicates whether we should use previous validation result. If this is false and there is result of previous validateSession call, it will not re-do the validation, install just returns the same validation result. Eitherwise, it will do the validation process.
Throws
WebAppException Thrown if the active session is confirmed to be invalid.

public abstract void validateSession ()

This method attempts to validate the active session. If the session cannot be validated, then it can also attempt to recover for a specific set of error conditions. If the session cannot be validated or recovered, this method will throw an exception. If an exception is not thrown, then the session is valid. If there is result of previous validateSession call, it will not re-do the validation, install just returns the same validation result. If you need do the validation regardless the previous result, use validateSession(boolean) passing true as parameter.

Throws
WebAppException Thrown if the active session is confirmed to be invalid.