Class AuthContextLocal
- java.lang.Object
-
- com.sun.identity.authentication.server.AuthContextLocal
-
- All Implemented Interfaces:
Serializable
public final class AuthContextLocal extends Object implements Serializable
TheAuthContextLocalprovides the implementation for authenticating users.A typical caller instantiates this class and starts the login process. The caller then obtains an array of
Callbackobjects, which contains the information required by the authentication plug-in module. The caller requests information from the user. On receiving the information from the user, the caller submits the same to this class. If more information is required, the above process continues until all the information required by the plug-ins/authentication modules, has been supplied. The caller then checks if the user has successfully been authenticated. If successfully authenticated, the caller can then get theSubjectandSSOTokenfor the user; if not successfully authenticated, the caller obtains the AuthLoginException.The implementation supports authenticating users either locally i.e., in process with all authentication modules configured or remotely to an authentication service/framework. (See documentation to configure in either of the modes).
The
getRequirements()andsubmitRequirements()are used to pass the user credentials for authentication by the plugin modules,getStatus()returns the authentication status.It should be serializable as a requirement to be stored in HttpSession.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description AMLoginContextamlcAuthLoginContextprotected static DebugauthDebugHold the debug instanceprotected static ResourceBundlebundleHolds the locale-specific informationprotected StringhostNameHolds the host nameprotected jakarta.servlet.http.HttpSessionhttpSessionHolds the http sessionstatic StringINDEX_NAMEauthentication index namestatic StringINDEX_TYPEauthentication index typeprotected Callback[]informationRequiredHolds call back informationstatic StringLDAP_AUTH_URLHolds LDAP URLstatic StringLOCALElocale settingprotected AuthLoginExceptionloginExceptionAuthLoginExceptionprotected AuthContext.StatusloginStatusLoginStatuslsHolds LoginStatusprotected SetmoduleInstanceNamesHolds the set of module instance namesprotected StringorganizationNameHolds organizationNameprotected char[]passwordcharacter array for passwordstatic StringPASSWORDHolds Password for the userstatic StringPRINCIPALHolds principal name to be authenticatedstatic StringREDIRECT_URLRedirection URLprotected SSOTokenssoTokenHolds Single Sign on Tokenprotected SubjectsubjectHolds subjectstatic StringSUBJECTauthentication subject
-
Constructor Summary
Constructors Constructor Description AuthContextLocal(String orgName)CreatesAuthContextLocalinstance is obtained for a given organization name, or sub organization name.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidabort()Terminates an ongoinglogincall that has not yet completed.StringgetAuthIdentifier()Returns the current 'authIdentifier' of the authentication process as String Session ID.protected static Callback[]getCallbacks(Callback[] recdCallbacks, boolean noFilter)Returns the array ofCallbackrequirements objectsprotected StringgetClientHostName()Returns the clients host nameStringgetErrorCode()Returns the error code.StringgetErrorMessage()Returns the error message.StringgetErrorTemplate()Returns the error template.StringgetFailureURL()Returns the Failure Login URL for the authenticating user.protected jakarta.servlet.http.HttpSessiongetHttpSession()Returns theHTTPSessionassociated with the current authentication contextStringgetLockoutMsg()Returns the account lockout message.AuthLoginExceptiongetLoginException()Returns login exception, if any, during the authentication process.LoginStategetLoginState()Returns the login stateSetgetModuleInstanceNames()Returns authentication module/s instances(or) plugin(s) configured for an organization, or sub-organization that was set during theAuthContextconstructor.StringgetOrganizationName()Returns the the organization name that was set during theAuthContextLocalconstructor.StringgetOrgDN()Returns the Organization DNCallback[]getRequirements()Returns an array ofCallbackobjects that must be populated by the user and returned back.Callback[]getRequirements(boolean noFilter)Returns an array ofCallbackobjects that must be populated by the user and returned back.SSOTokengetSSOToken()Returns the Single-Sign-On (SSO) Token for the authenticated user.Single-Sign-On token can be used as the authenticated token.AuthContext.StatusgetStatus()Returns the current status of the authentication process.SubjectgetSubject()Returns the set of Principals the user has been authenticated as.StringgetSuccessURL()Returns the Successful Login URL for the authenticated user.booleanhasMoreRequirements()Checks if the login process requires more information from the user to complete the authentication.booleanhasMoreRequirements(boolean noFilter)Checks if the login process requires more information from the user to complete the authenticationbooleanisLockedOut()Checks the account is locked outvoidlogin()Starts the login process for the givenAuthContextLocalobject.voidlogin(AuthContext.IndexType type, String indexName)Start the login process for theAuthContextLocalobject identified by the index type and index name.voidlogin(AuthContext.IndexType type, String indexName, String locale)Starts the login process for the givenAuthContextLocalobject identified by the index type and index name.protected voidlogin(AuthContext.IndexType type, String indexName, Principal principal, char[] password, Subject subject)Performs the Login for the given AuthContextprotected voidlogin(AuthContext.IndexType type, String indexName, Principal principal, char[] password, Subject subject, Map envMap, String locale)Performs the Login for the given AuthContextvoidlogin(AuthContext.IndexType type, String indexName, Map envMap, String locale)Starts the login process for the givenAuthContextLocalobject identified by the index type and index name.voidlogin(Principal principal, char[] password)Starts the login process for the givenAuthContextLocals object for the givenPrincipaland the user's password.voidlogin(Subject subject)Starts the login process for the givenAuthContextLocalobject for the givenSubject.voidlogout()Logs out the user and also invalidates theSSOTokenassociated with thisAuthContextLocal.voidreset()Resets this instance ofAuthContextLocalobject, so that a new login process can be initiated.voidsetClientHostName(String hostname)Sets the client's host name , this method is used in case of remote authentication,to set the client's hostname or IP address.voidsetHttpSession(jakarta.servlet.http.HttpSession session)Sets theHttpSessionthat will be used by the SSO component to store the session information.voidsetLoginException(AuthLoginException exception)Sets the login exception that represents errors during the authentication process.voidsetLoginState(LoginState state)Sets the Login Stateprotected voidsetLoginStatus(AuthContext.Status status)Sets the login status.voidsetOrgDN(String orgDN)Sets the Organization DNvoidsubmitRequirements(Callback[] info)Submit the populatedCallbackobjects to the authentication plug-in modules.booleansubmittedRequirements()
-
-
-
Field Detail
-
authDebug
protected static Debug authDebug
Hold the debug instance
-
bundle
protected static ResourceBundle bundle
Holds the locale-specific information
-
organizationName
protected String organizationName
Holds organizationName
-
moduleInstanceNames
protected Set moduleInstanceNames
Holds the set of module instance names
-
loginStatus
protected AuthContext.Status loginStatus
-
hostName
protected String hostName
Holds the host name
-
httpSession
protected jakarta.servlet.http.HttpSession httpSession
Holds the http session
-
ssoToken
protected SSOToken ssoToken
Holds Single Sign on Token
-
loginException
protected volatile AuthLoginException loginException
AuthLoginException
-
informationRequired
protected Callback[] informationRequired
Holds call back information
-
amlc
public AMLoginContext amlc
AuthLoginContext
-
ls
public LoginStatus ls
Holds LoginStatus
-
subject
protected Subject subject
Holds subject
-
password
protected char[] password
character array for password
-
LDAP_AUTH_URL
public static final String LDAP_AUTH_URL
Holds LDAP URL- See Also:
- Constant Field Values
-
PRINCIPAL
public static final String PRINCIPAL
Holds principal name to be authenticated- See Also:
- Constant Field Values
-
PASSWORD
public static final String PASSWORD
Holds Password for the user- See Also:
- Constant Field Values
-
SUBJECT
public static final String SUBJECT
authentication subject- See Also:
- Constant Field Values
-
INDEX_TYPE
public static final String INDEX_TYPE
authentication index type- See Also:
- Constant Field Values
-
INDEX_NAME
public static final String INDEX_NAME
authentication index name- See Also:
- Constant Field Values
-
LOCALE
public static final String LOCALE
locale setting- See Also:
- Constant Field Values
-
REDIRECT_URL
public static final String REDIRECT_URL
Redirection URL- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AuthContextLocal
public AuthContextLocal(String orgName)
CreatesAuthContextLocalinstance is obtained for a given organization name, or sub organization name.loginmethod is then used to start the authentication process.- Parameters:
orgName- name of the user's organization.
-
-
Method Detail
-
getModuleInstanceNames
public Set getModuleInstanceNames()
Returns authentication module/s instances(or) plugin(s) configured for an organization, or sub-organization that was set during theAuthContextconstructor.- Returns:
- authentication module/s instances (or plugins).
- Throws:
UnsupportedOperationException- if an error occurred.
-
login
public void login() throws AuthLoginExceptionStarts the login process for the givenAuthContextLocalobject.- Throws:
AuthLoginException- if an error occurred during login.
-
login
public void login(Principal principal, char[] password) throws AuthLoginException
Starts the login process for the givenAuthContextLocals object for the givenPrincipaland the user's password. This method should be called primarily when the authenticator knows there would no other credentials needed to complete the authentication process.- Parameters:
principal-Principalof the user to be authenticated.password- password for the user.- Throws:
AuthLoginException- if an error occurred during login.
-
login
public void login(AuthContext.IndexType type, String indexName) throws AuthLoginException
Start the login process for theAuthContextLocalobject identified by the index type and index name. TheIndexTypedefines the possible kinds of "objects" or "resources" for which an authentication can be performed. Currently supported index types are users, roles, services (or application), levels and mechanism.- Parameters:
type- authentication index type.indexName- authentication index name.- Throws:
AuthLoginException- if an error occurred during login.
-
login
public void login(Subject subject) throws AuthLoginException
Starts the login process for the givenAuthContextLocalobject for the givenSubject. Refer to JAAS for description onSubject.- Parameters:
subject-Subjectof the user to be authenticated.- Throws:
AuthLoginException- if an error occurred during login.
-
login
public void login(AuthContext.IndexType type, String indexName, String locale) throws AuthLoginException
Starts the login process for the givenAuthContextLocalobject identified by the index type and index name. TheIndexTypedefines the possible kinds of "objects" or "resources" for which an authentication can be performed.Currently supported index types are users, roles, services (or application), levels and mechanism. The locale specifies the user preferred locale setting.- Parameters:
type- authentication index type.indexName- authentication index name.locale- locale setting.- Throws:
AuthLoginException- if an error occurred during login process.
-
login
public void login(AuthContext.IndexType type, String indexName, Map envMap, String locale) throws AuthLoginException
Starts the login process for the givenAuthContextLocalobject identified by the index type and index name. TheIndexTypedefines the possible kinds of "objects" or "resources" for which an authentication can be performed.Currently supported index types are users, roles, services (or application), levels and mechanism. The locale specifies the user preferred locale setting.- Parameters:
type- authentication index type.indexName- authentication index name.envMap- Environment Map, key is String, value is set of string. this is applicable only when the type isAuthContext.IndexType.RESOURCElocale- locale setting.- Throws:
AuthLoginException- if an error occurred during login process.
-
login
protected void login(AuthContext.IndexType type, String indexName, Principal principal, char[] password, Subject subject) throws AuthLoginException
Performs the Login for the given AuthContext- Parameters:
type- authentication index typeindexName- authentication index nameprincipal- principal name of the user to be authenticatedpassword- password for the usersubject- authentication subject- Throws:
AuthLoginException- if error occurs during login
-
login
protected void login(AuthContext.IndexType type, String indexName, Principal principal, char[] password, Subject subject, Map envMap, String locale) throws AuthLoginException
Performs the Login for the given AuthContext- Parameters:
type- authentication index typeindexName- authentication index nameprincipal- principal name of the user to be authenticatedpassword- password for the usersubject- authentication subjectenvMap- Environment map, this is applicable only when the type isAuthContext.IndexType.RESOURCElocale- locale setting- Throws:
AuthLoginException- if error occurs during login
-
reset
public void reset()
Resets this instance ofAuthContextLocalobject, so that a new login process can be initiated. A new authentication process can started using any one of theloginmethods.
-
getSubject
public Subject getSubject()
Returns the set of Principals the user has been authenticated as. This should be invoked only after successful authentication. If the authentication fails or the authentication is in process, this will returnnull.- Returns:
- The set of Principals the user has been authenticated as.
-
hasMoreRequirements
public boolean hasMoreRequirements()
Checks if the login process requires more information from the user to complete the authentication.- Returns:
trueif more credentials are required from the user.
-
hasMoreRequirements
public boolean hasMoreRequirements(boolean noFilter)
Checks if the login process requires more information from the user to complete the authentication- Parameters:
noFilter- falg to indicate if there is a Filter- Returns:
trueif more credentials are required from the user.
-
getRequirements
public Callback[] getRequirements()
Returns an array ofCallbackobjects that must be populated by the user and returned back. These objects are requested by the authentication plug-ins, and these are usually displayed to the user. The user then provides the requested information for it to be authenticated.- Returns:
- an array of
Callbackobjects requesting credentials from user.
-
getRequirements
public Callback[] getRequirements(boolean noFilter)
Returns an array ofCallbackobjects that must be populated by the user and returned back. These objects are requested by the authentication plug-ins, and these are usually displayed to the user. The user then provides the requested information for it to be authenticated.- Parameters:
noFilter- flag to indicate if there is a Filter- Returns:
- an array of
Callbackobjects requesting credentials from user.
-
submitRequirements
public void submitRequirements(Callback[] info)
Submit the populatedCallbackobjects to the authentication plug-in modules. Called aftergetRequirementsmethod and obtaining user's response to these requests.- Parameters:
info- array ofCallbackobjects
-
logout
public void logout() throws AuthLoginExceptionLogs out the user and also invalidates theSSOTokenassociated with thisAuthContextLocal.- Throws:
AuthLoginException- if an error occurred during logout
-
getLoginException
public AuthLoginException getLoginException()
Returns login exception, if any, during the authentication process. Typically set when the login fails.- Returns:
- login exception.
-
setLoginException
public void setLoginException(AuthLoginException exception)
Sets the login exception that represents errors during the authentication process.- Parameters:
exception- AuthLoginException to be set.
-
getStatus
public AuthContext.Status getStatus()
Returns the current status of the authentication process.- Returns:
- the current status of the authentication process.
-
setLoginStatus
protected void setLoginStatus(AuthContext.Status status)
Sets the login status. Used internally and not visible outside this package.- Parameters:
status- login status
-
getSSOToken
public SSOToken getSSOToken()
Returns the Single-Sign-On (SSO) Token for the authenticated user.Single-Sign-On token can be used as the authenticated token.- Returns:
- single-sign-on token
-
getSuccessURL
public String getSuccessURL()
Returns the Successful Login URL for the authenticated user.- Returns:
- the Successful Login URL for the authenticated user.
-
getFailureURL
public String getFailureURL()
Returns the Failure Login URL for the authenticating user.- Returns:
- the Failure Login URL for the authenticating user.
-
getOrganizationName
public String getOrganizationName()
Returns the the organization name that was set during theAuthContextLocalconstructor.- Returns:
- Organization name.
-
abort
public void abort() throws AuthLoginExceptionTerminates an ongoinglogincall that has not yet completed.- Throws:
AuthLoginException- if an error occurred during abort.
-
getErrorTemplate
public String getErrorTemplate()
Returns the error template.- Returns:
- the error template.
-
getErrorMessage
public String getErrorMessage()
Returns the error message.- Returns:
- the error message.
-
getErrorCode
public String getErrorCode()
Returns the error code.- Returns:
- error code.
-
getAuthIdentifier
public String getAuthIdentifier()
Returns the current 'authIdentifier' of the authentication process as String Session ID.- Returns:
authIdentifierof the authentication process
-
getLockoutMsg
public String getLockoutMsg()
Returns the account lockout message. This can be either a dynamic message indicating the number of tries left or the the account deactivated message.- Returns:
- account lockout message.
-
isLockedOut
public boolean isLockedOut()
Checks the account is locked out- Returns:
trueif the account is locked,falseotherwise
-
setClientHostName
public void setClientHostName(String hostname)
Sets the client's host name , this method is used in case of remote authentication,to set the client's hostname or IP address. This could be used by the policy component to restrict access to resources.- Parameters:
hostname- Host name.
-
getClientHostName
protected String getClientHostName()
Returns the clients host name- Returns:
- hostname
-
submittedRequirements
public boolean submittedRequirements()
-
setHttpSession
public void setHttpSession(jakarta.servlet.http.HttpSession session)
Sets theHttpSessionthat will be used by the SSO component to store the session information. In the absence ofHttpSessionthe information is stored inHashMapand will have issues with fail-over. With session fail-over turned onHttpSessionwould be provide persistance storage mechanism for SSO.- Parameters:
session- HttpSession
-
getHttpSession
protected jakarta.servlet.http.HttpSession getHttpSession()
Returns theHTTPSessionassociated with the current authentication context- Returns:
- httpSession
-
getCallbacks
protected static Callback[] getCallbacks(Callback[] recdCallbacks, boolean noFilter)
Returns the array ofCallbackrequirements objects- Parameters:
recdCallbacks- callbacks requirementsnoFilter- boolean to indicate if filter exists- Returns:
- an array of
Callbackobjects
-
setLoginState
public void setLoginState(LoginState state)
Sets the Login State- Parameters:
state- login state
-
getLoginState
public LoginState getLoginState()
Returns the login state- Returns:
- loginState
-
setOrgDN
public void setOrgDN(String orgDN)
Sets the Organization DN- Parameters:
orgDN- Organization DN
-
getOrgDN
public String getOrgDN()
Returns the Organization DN- Returns:
- the Organization DN
-
-