Class AuthSubsystem
- java.lang.Object
-
- com.netscape.cmscore.authentication.AuthSubsystem
-
- All Implemented Interfaces:
ISubsystem
public class AuthSubsystem extends java.lang.Object implements ISubsystem
Default authentication subsystem- Version:
- $Revision$, $Date$
- Author:
- cfu, lhsiao
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCERTUSERDB_AUTHMGR_IDConstant for certificate based authentication manager ID.static java.lang.StringCERTUSERDB_PLUGIN_IDConstant for certificate based authentication plugin ID.static java.lang.StringCHALLENGE_AUTHMGR_IDConstant for challenge based authentication manager ID.static java.lang.StringCHALLENGE_PLUGIN_IDConstant for challenge based authentication plugin ID.static java.lang.StringCMC_USER_SIGNED_AUTH_AUTHMGR_IDConstant for CMC user-signed authentication manager ID.static java.lang.StringCMCAUTH_AUTHMGR_IDConstant for CMC authentication manager ID.static java.lang.StringCMCAUTH_PLUGIN_IDConstant for CMC authentication plugin ID.static java.lang.StringIDstatic org.slf4j.Loggerloggerjava.util.Hashtable<java.lang.String,AuthManagerProxy>mAuthMgrInstsjava.util.Hashtable<java.lang.String,AuthMgrPlugin>mAuthMgrPluginsstatic java.lang.StringNULL_AUTHMGR_IDConstant for null authentication manager ID.static java.lang.StringNULL_PLUGIN_IDConstant for null authentication plugin ID.static java.lang.StringPASSWDUSERDB_AUTHMGR_IDConstant for password based authentication manager ID.static java.lang.StringPASSWDUSERDB_PLUGIN_IDConstant for password based authentication plugin ID.static java.lang.StringPROP_CLASSstatic java.lang.StringPROP_IMPLstatic java.lang.StringPROP_PLUGINstatic java.lang.StringSSLCLIENTCERT_AUTHMGR_IDConstant for ssl client authentication manager ID.static java.lang.StringSSLCLIENTCERT_PLUGIN_IDConstant for ssl client authentication plugin ID.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(java.lang.String name, AuthManager authMgrInst)Add an authentication manager instance.IAuthTokenauthenticate(IAuthCredentials authCred, java.lang.String authMgrInstName)Authenticate to the named authentication manager instancevoiddelete(java.lang.String name)Removes a authentication manager instance.AuthManagerget(java.lang.String name)Gets the authentication manager instance of the specified name.AuthManagergetAuthManager(java.lang.String name)gets the named authentication managerAuthManagergetAuthManagerPlugin(java.lang.String name)Retrieve a single auth manager instanceAuthMgrPlugingetAuthManagerPluginImpl(java.lang.String name)retrieve a single auth manager plugin by namejava.util.Enumeration<AuthMgrPlugin>getAuthManagerPlugins()Enumerate all registered authentication manager plugins.java.util.Enumeration<AuthManager>getAuthManagers()Enumerate all authentication manager instances.java.lang.String[]getConfigParams(java.lang.String implName)Gets configuration parameters for the given authentication manager plugin.AuthenticationConfiggetConfigStore()Returns the root configuration storage of this system.java.lang.StringgetId()Retrieves id (name) of this subsystem.static AuthSubsystemgetInstance()java.util.Hashtable<java.lang.String,AuthManagerProxy>getInstances()Get a hashtable containing all authentication instances.java.util.Hashtable<java.lang.String,AuthMgrPlugin>getPlugins()Get a hashtable containing all authentication plugins.java.lang.String[]getRequiredCreds(java.lang.String authMgrInstName)Gets a list of required authentication credential names of the specified authentication manager.voidinit(IConfigStore config)Initializes the authentication subsystem from the config store.voidsetId(java.lang.String id)Sets id string to this subsystem.voidshutdown()shuts down authentication managers one by one.voidstartup()registers the administration servlet with the administration subsystem.
-
-
-
Field Detail
-
logger
public static org.slf4j.Logger logger
-
ID
public static final java.lang.String ID
- See Also:
- Constant Field Values
-
PROP_CLASS
public static final java.lang.String PROP_CLASS
- See Also:
- Constant Field Values
-
PROP_IMPL
public static final java.lang.String PROP_IMPL
- See Also:
- Constant Field Values
-
PROP_PLUGIN
public static final java.lang.String PROP_PLUGIN
- See Also:
- Constant Field Values
-
PASSWDUSERDB_PLUGIN_ID
public static final java.lang.String PASSWDUSERDB_PLUGIN_ID
Constant for password based authentication plugin ID.- See Also:
- Constant Field Values
-
CERTUSERDB_PLUGIN_ID
public static final java.lang.String CERTUSERDB_PLUGIN_ID
Constant for certificate based authentication plugin ID.- See Also:
- Constant Field Values
-
CHALLENGE_PLUGIN_ID
public static final java.lang.String CHALLENGE_PLUGIN_ID
Constant for challenge based authentication plugin ID.- See Also:
- Constant Field Values
-
NULL_PLUGIN_ID
public static final java.lang.String NULL_PLUGIN_ID
Constant for null authentication plugin ID.- See Also:
- Constant Field Values
-
SSLCLIENTCERT_PLUGIN_ID
public static final java.lang.String SSLCLIENTCERT_PLUGIN_ID
Constant for ssl client authentication plugin ID.- See Also:
- Constant Field Values
-
PASSWDUSERDB_AUTHMGR_ID
public static final java.lang.String PASSWDUSERDB_AUTHMGR_ID
Constant for password based authentication manager ID.- See Also:
- Constant Field Values
-
CERTUSERDB_AUTHMGR_ID
public static final java.lang.String CERTUSERDB_AUTHMGR_ID
Constant for certificate based authentication manager ID.- See Also:
- Constant Field Values
-
CHALLENGE_AUTHMGR_ID
public static final java.lang.String CHALLENGE_AUTHMGR_ID
Constant for challenge based authentication manager ID.- See Also:
- Constant Field Values
-
NULL_AUTHMGR_ID
public static final java.lang.String NULL_AUTHMGR_ID
Constant for null authentication manager ID.- See Also:
- Constant Field Values
-
SSLCLIENTCERT_AUTHMGR_ID
public static final java.lang.String SSLCLIENTCERT_AUTHMGR_ID
Constant for ssl client authentication manager ID.- See Also:
- Constant Field Values
-
CMCAUTH_PLUGIN_ID
public static final java.lang.String CMCAUTH_PLUGIN_ID
Constant for CMC authentication plugin ID.- See Also:
- Constant Field Values
-
CMCAUTH_AUTHMGR_ID
public static final java.lang.String CMCAUTH_AUTHMGR_ID
Constant for CMC authentication manager ID.- See Also:
- Constant Field Values
-
CMC_USER_SIGNED_AUTH_AUTHMGR_ID
public static final java.lang.String CMC_USER_SIGNED_AUTH_AUTHMGR_ID
Constant for CMC user-signed authentication manager ID.- See Also:
- Constant Field Values
-
mAuthMgrPlugins
public java.util.Hashtable<java.lang.String,AuthMgrPlugin> mAuthMgrPlugins
-
mAuthMgrInsts
public java.util.Hashtable<java.lang.String,AuthManagerProxy> mAuthMgrInsts
-
-
Method Detail
-
getInstance
public static AuthSubsystem getInstance()
-
init
public void init(IConfigStore config) throws EBaseException
Initializes the authentication subsystem from the config store. Load Authentication manager plugins, create and initialize initialize authentication manager instances.- Specified by:
initin interfaceISubsystem- Parameters:
config- The configuration store.- Throws:
EBaseException- failed to initialize
-
authenticate
public IAuthToken authenticate(IAuthCredentials authCred, java.lang.String authMgrInstName) throws EMissingCredential, EInvalidCredentials, EAuthMgrNotFound, EBaseException
Authenticate to the named authentication manager instance- Parameters:
authCred- authentication credentials subject to the requirements of each authentication managerauthMgrName- name of the authentication manager instance- Returns:
- authentication token with individualized authenticated information.
- Throws:
EMissingCredential- If a required credential for the authentication manager is missing.EInvalidCredentials- If the credentials cannot be authenticatedEAuthMgrNotFound- The auth manager is not found.EBaseException- If an internal error occurred.
-
getRequiredCreds
public java.lang.String[] getRequiredCreds(java.lang.String authMgrInstName) throws EAuthMgrNotFoundGets a list of required authentication credential names of the specified authentication manager.- Parameters:
authMgrName- The authentication manager name- Returns:
- a Vector of required credential attribute names.
- Throws:
EAuthMgrNotFound
-
getConfigParams
public java.lang.String[] getConfigParams(java.lang.String implName) throws EAuthMgrPluginNotFound, EBaseExceptionGets configuration parameters for the given authentication manager plugin.- Parameters:
implName- Name of the authentication plugin.- Returns:
- Hashtable of required parameters.
- Throws:
EAuthMgrPluginNotFoundEBaseException
-
add
public void add(java.lang.String name, AuthManager authMgrInst)Add an authentication manager instance.- Parameters:
name- name of the authentication manager instanceauthMgr- the authentication manager instance to be added
-
delete
public void delete(java.lang.String name)
Removes a authentication manager instance.- Parameters:
name- name of the authentication manager
-
get
public AuthManager get(java.lang.String name)
Gets the authentication manager instance of the specified name.- Parameters:
name- name of the authentication manager instance- Returns:
- the named authentication manager instance
-
getAuthManagers
public java.util.Enumeration<AuthManager> getAuthManagers()
Enumerate all authentication manager instances.
-
getAuthManagerPlugins
public java.util.Enumeration<AuthMgrPlugin> getAuthManagerPlugins()
Enumerate all registered authentication manager plugins.
-
getAuthManagerPluginImpl
public AuthMgrPlugin getAuthManagerPluginImpl(java.lang.String name)
retrieve a single auth manager plugin by name
-
getAuthManagerPlugin
public AuthManager getAuthManagerPlugin(java.lang.String name)
Retrieve a single auth manager instance
-
getId
public java.lang.String getId()
Retrieves id (name) of this subsystem.- Specified by:
getIdin interfaceISubsystem- Returns:
- name of the authentication subsystem
-
setId
public void setId(java.lang.String id) throws EBaseExceptionSets id string to this subsystem.Use with caution. Should not do it when sharing with others
- Specified by:
setIdin interfaceISubsystem- Parameters:
id- name to be applied to an authentication sybsystem- Throws:
EBaseException- failed to set id
-
startup
public void startup() throws EBaseExceptionregisters the administration servlet with the administration subsystem.- Specified by:
startupin interfaceISubsystem- Throws:
EBaseException- failed to start up
-
shutdown
public void shutdown()
shuts down authentication managers one by one.- Specified by:
shutdownin interfaceISubsystem
-
getPlugins
public java.util.Hashtable<java.lang.String,AuthMgrPlugin> getPlugins()
Get a hashtable containing all authentication plugins.- Returns:
- all authentication plugins.
-
getInstances
public java.util.Hashtable<java.lang.String,AuthManagerProxy> getInstances()
Get a hashtable containing all authentication instances.- Returns:
- all authentication instances.
-
getConfigStore
public AuthenticationConfig getConfigStore()
Returns the root configuration storage of this system.- Specified by:
getConfigStorein interfaceISubsystem- Returns:
- configuration store of this subsystem
-
getAuthManager
public AuthManager getAuthManager(java.lang.String name)
gets the named authentication manager- Parameters:
name- of the authentication manager- Returns:
- the named authentication manager
-
-