public class

WebAppSessionManagerImpl

extends WebSessionManagerImpl
implements WebAppSessionManager
java.lang.Object
   ↳ com.microstrategy.utils.serialization.AbstractPersistable
     ↳ com.microstrategy.web.beans.WebSessionManagerImpl
       ↳ com.microstrategy.web.app.beans.WebAppSessionManagerImpl
Known Direct Subclasses

Summary

[Expand]
Inherited Constants
From class com.microstrategy.web.beans.WebSessionManagerImpl
From interface com.microstrategy.utils.serialization.EnumWebPersistableState
[Expand]
Inherited Fields
From class com.microstrategy.web.beans.WebSessionManagerImpl
Public Constructors
WebAppSessionManagerImpl(AppContext ownerAppContext)
Public Methods
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.
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.
void changePassword(String oldPassword, String newPassword)
Changes the active session's password from the old password given to the new password.
void changeSessionFlags()
Changes the session flags for the session.
WebIServerSession createLoginFirstSession()
Creates a Login First session
int getAvailableAuthModes(WebIServerSession session)
Returns the available authentication modes that may be used with this session.
int getAvailableWebLoginModes(WebIServerSession session)
Returns the available web login modes that may be used with this session.
int getLastMessageKey()
Get cached message key that matches the last message id
String getLastMsgIDFromCookie(int msgKey)
Get the last message ID from cookie for provided message key
WebIServerSession getLoginFirstSession()
Returns the existing Login First session (already created or restored).
static String getNewRedirectToken()
ArrayList getProjectsList()
Returns an ArrayList of ProjectInformation objects, which contain information about the projects we are connected to.
ArrayList getProjectsList(boolean refresh)
Returns an ArrayList of ProjectInformation objects, which contain information about the projects we are connected to.
WebIServerSession getSession(String server, int port, String project)
Returns the WebIServerSession for the given server/project.
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.
boolean hasCredentials()
Returns whether this instance of the session manager contains credentials internally.
WebIServerSession initActiveSessionFromRequest(ServletWebComponent servletWebComponent, 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.
WebIServerSession initActiveSessionFromRequest(ServletWebComponent servletWebComponent)
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.
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.
boolean isAdminUser()
Returns whether the active session's user is an administrative user or not.
boolean isLoginFirstEnabled()
boolean isSSOLoging()
boolean needNewPswd()
Returns whether the user needs to update password or not.
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.
void removeAllSessions()
Removes all sessions from the list, closing them if the external security manager setup on the application context says to do so.
boolean restoreState(String state)
Restores a component based on its saved state.
boolean restoreState(SAXSupport saxSupport, String a, String b, String c, Attributes attrs)
Restores a component from an embedded XML during a SAX parsing.
void saveState(StringBuffer buf, int howMuchState)
Saves and stores a component's state into a StringBuffer.
void setCredentials(String uid, String pwd, int authMode)
Sets the credentials for the active session.
void updateActiveSession(WebIServerSession wiss)
Sets passed session as the existing active session
void validateSession(WebIServerSession session)
This method attempts to validate the given session.
void validateSession()
This method attempts to validate the active session.
void validateSession(boolean refresh)
This method attempts to validate the active session.
Protected Methods
void closeSession(WebIServerSession session)
int getInitialAuthMode(WebIServerSession session)
void init()
boolean isSeamlessLoginEnabled()
boolean restoreSessionListState(WebIServerSessionList list, String state)
void validatePrivileges(WebIServerSession session)
[Expand]
Inherited Methods
From class com.microstrategy.web.beans.WebSessionManagerImpl
From class com.microstrategy.utils.serialization.AbstractPersistable
From class java.lang.Object
From interface com.microstrategy.utils.serialization.Persistable
From interface com.microstrategy.web.app.WebAppSessionManager
From interface com.microstrategy.web.beans.RequestPersistable
From interface com.microstrategy.web.beans.WebSessionManager

Public Constructors

public WebAppSessionManagerImpl (AppContext ownerAppContext)

Public Methods

public 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. If server name is not provided, it will read from active session.

Returns
  • {int}

public 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 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.

public 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 WebIServerSession createLoginFirstSession ()

Creates a Login First session

Returns
  • Login First session

public 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.

public 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.

public int getLastMessageKey ()

Get cached message key that matches the last message id

public String getLastMsgIDFromCookie (int msgKey)

Get the last message ID from cookie for provided message key

Returns
  • {String}
See Also
  • buildLastMessageKey()

public 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 static String getNewRedirectToken ()

public 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

public 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

public 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 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 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 WebIServerSession initActiveSessionFromRequest (ServletWebComponent servletWebComponent, 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
servletWebComponent 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.

public WebIServerSession initActiveSessionFromRequest (ServletWebComponent servletWebComponent)

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
servletWebComponent 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.

public 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.

public 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 boolean isLoginFirstEnabled ()

public boolean isSSOLoging ()

public boolean needNewPswd ()

Returns whether the user needs to update password or not.

Returns
  • true if new password is needed.

public 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 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 boolean restoreState (String state)

Restores a component based on its saved state.

Parameters
state the state of a component
Returns
  • true if restoration succeeds.

public boolean restoreState (SAXSupport saxSupport, String a, String b, String c, Attributes attrs)

Restores a component from an embedded XML during a SAX parsing.

Parameters
saxSupport a SAX parser processing the XML representation of a state
a The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed
b The local name (without prefix), or the empty string if Namespace processing is not being performed
c The qualified name (with prefix), or the empty string if qualified names are not available
attrs The attributes attached to the element. If there are no attributes, it shall be an empty Attributes object
Returns
  • true to indicate a successful restoration. Otherwise, false will be returned.

public void saveState (StringBuffer buf, int howMuchState)

Saves and stores a component's state into a StringBuffer. The returned state should be HTML friendly.

There are generally two formats of the saved state: flat state and XML representation. The minimum state is saved in flat state format, while the typical and maximum states are saved in XML string representation.

Parameters
buf a StringBuffer to store the saved state.
howMuchState how much state information to save (EnumWebPersistableState).
Throws
UnsupportedOperationException

public 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.

public void updateActiveSession (WebIServerSession wiss)

Sets passed session as the existing active session

Parameters
wiss the new IServer session

public 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.

public 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.

public 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.

Protected Methods

protected void closeSession (WebIServerSession session)

protected int getInitialAuthMode (WebIServerSession session)

protected void init ()

protected boolean isSeamlessLoginEnabled ()

protected boolean restoreSessionListState (WebIServerSessionList list, String state)

protected void validatePrivileges (WebIServerSession session)