Class FlatFileAuth

java.lang.Object
com.netscape.cms.authentication.FlatFileAuth
All Implemented Interfaces:
IExtendedPluginInfo, ProfileAuthenticator, AuthManager

public class FlatFileAuth extends Object implements ProfileAuthenticator, IExtendedPluginInfo
This represents the authentication manager that authenticates user against a file where id, and password are stored.
Version:
$Revision$, $Date$
  • Field Details

    • logger

      public static org.slf4j.Logger logger
    • PROP_FILENAME

      protected static final String PROP_FILENAME
      See Also:
    • PROP_KEYATTRIBUTES

      protected static final String PROP_KEYATTRIBUTES
      See Also:
    • PROP_AUTHATTRS

      protected static final String PROP_AUTHATTRS
      See Also:
    • PROP_DEFERONFAILURE

      protected static final String PROP_DEFERONFAILURE
      See Also:
    • mFilename

      protected String mFilename
    • mFileLastRead

      protected long mFileLastRead
    • mKeyAttributes

      protected String mKeyAttributes
    • mAuthAttrs

      protected String mAuthAttrs
    • mDeferOnFailure

      protected boolean mDeferOnFailure
    • mConfigParams

      protected static String[] mConfigParams
    • mName

      protected String mName
      name of this authentication manager instance
    • FFAUTH

      protected String FFAUTH
    • mImplName

      protected String mImplName
      name of the authentication manager plugin
    • mConfig

      protected AuthManagerConfig mConfig
      configuration store
    • entries

      protected Hashtable<String,Hashtable<String,String>> entries
      Hashtable of entries from Auth File. Hash index is the concatenation of the attributes from matchAttributes property
  • Constructor Details

    • FlatFileAuth

      public FlatFileAuth()
  • Method Details

    • getExtendedPluginInfo

      public String[] getExtendedPluginInfo()
      Description copied from interface: IExtendedPluginInfo
      This method returns an array of strings. Each element of the array represents a configurable parameter, or some other meta-info (such as help-token) there is an entry indexed on that parameter name Where: type_info is either 'string', 'number', 'boolean', 'password' or 'choice(ch1,ch2,ch3,...)' If the marker 'required' is included after the type_info, the parameter will has some visually distinctive marking in the UI. 'description' is a short sentence describing the parameter 'choice' is rendered as a drop-down list. The first parameter in the list will be activated by default 'boolean' is rendered as a checkbox. The resulting parameter will be either 'true' or 'false' 'string' allows any characters 'number' allows only numbers 'password' is rendered as a password field (the characters are replaced with *'s when being types. This parameter is not passed through to the plugin. It is instead inserted directly into the password cache keyed on the instance name. The value of the parameter 'bindPWPrompt' (see example below) is set to the key. In addition to the configurable parameters, the following magic parameters may be defined: HELP_TOKEN;helptoken - a pointer to the online manual section for this plugin HELP_TEXT;helptext - a general help string describing the plugin For example: "username;string;The username you wish to login as" "bindPWPrompt;password;Enter password to bind as above user with" "algorithm;choice(RSA,DSA);Which algorithm do you want to use" "enable;boolean;Do you want to run this plugin" "port;number;Which port number do you want to use"
      Specified by:
      getExtendedPluginInfo in interface IExtendedPluginInfo
    • getPropertyS

      protected String getPropertyS(String propertyName, String s) throws EBaseException
      Get the named property If the property is not set, use s as the default, and create a new value for the property in the config file.
      Parameters:
      propertyName - Property name
      s - The default value of the property
      Throws:
      EBaseException
    • isSSLClientRequired

      public boolean isSSLClientRequired()
      Description copied from interface: ProfileAuthenticator
      Checks if this authenticator requires SSL client authentication.
      Specified by:
      isSSLClientRequired in interface ProfileAuthenticator
      Returns:
      client authentication required or not
    • getPropertyB

      protected boolean getPropertyB(String propertyName, boolean b) throws EBaseException
      Get the named property, If the property is not set, use b as the default, and create a new value for the property in the config file.
      Parameters:
      propertyName - Property name
      b - The default value of the property
      Throws:
      EBaseException
    • init

      public void init(String name, String implName, AuthManagerConfig config) throws EBaseException
      Description copied from interface: AuthManager
      Initialize this authentication manager.
      Specified by:
      init in interface AuthManager
      Parameters:
      name - The name of this authentication manager instance.
      implName - The name of the authentication manager plugin.
      config - The configuration store for this authentication manager.
      Throws:
      EBaseException - If an initialization error occurred.
    • unionOfStrings

      public String[] unionOfStrings(String[][] stringArrays)
      Return a string array which is the union of all the string arrays passed in. The strings are treated as case sensitive
    • readFile

      protected Hashtable<String,Hashtable<String,String>> readFile(File f, String[] keys) throws IOException
      Read a file with the following format:

       param1: valuea
       param2: valueb
       -blank-line-
       param1: valuec
       param2: valued
       
      Parameters:
      f - The file to read
      keys - The parameters to concat together to form the hash key
      Returns:
      a hashtable of hashtables.
      Throws:
      IOException
    • authenticate

      Authenticate the request
      Specified by:
      authenticate in interface AuthManager
      Parameters:
      authCred - The authentication credentials
      Returns:
      authentication token
      Throws:
      EMissingCredential - If a required credential for this authentication manager is missing.
      EInvalidCredentials - If credentials cannot be authenticated.
      EBaseException - If an internal error occurred.
    • getRequiredCreds

      public String[] getRequiredCreds()
      Return a list of HTTP parameters which will be taken from the request posting and placed into the AuthCredentials block Note that this method will not be called until after the init() method is called
      Specified by:
      getRequiredCreds in interface AuthManager
      Returns:
      The required credential attributes.
    • getConfigParams

      public String[] getConfigParams()
      Returns a list of configuration parameters, so the console can prompt the user when configuring.
      Specified by:
      getConfigParams in interface AuthManager
      Returns:
      a list of configuration parameters.
    • getConfigStore

      public AuthManagerConfig getConfigStore()
      Returns the configuration store used by this authentication manager
      Specified by:
      getConfigStore in interface AuthManager
      Specified by:
      getConfigStore in interface ProfileAuthenticator
      Returns:
      configuration store
    • shutdown

      public void shutdown()
      Description copied from interface: AuthManager
      Prepare this authentication manager for a shutdown. Called when the server is exiting for any cleanup needed.
      Specified by:
      shutdown in interface AuthManager
    • getName

      public String getName()
      Description copied from interface: AuthManager
      Get the name of this authentication manager instance.

      Specified by:
      getName in interface AuthManager
      Returns:
      the name of this authentication manager.
    • getImplName

      public String getImplName()
      Description copied from interface: AuthManager
      Get name of authentication manager plugin.

      Specified by:
      getImplName in interface AuthManager
      Returns:
      the name of the authentication manager plugin.
    • init

      public void init(Profile profile, ConfigStore config) throws EProfileException
      Description copied from interface: ProfileAuthenticator
      Initializes this default policy.
      Specified by:
      init in interface ProfileAuthenticator
      Parameters:
      profile - owner of this authenticator
      config - configuration store
      Throws:
      EProfileException - failed to initialize
    • getName

      public String getName(Locale locale)
      Retrieves the localizable name of this policy.
      Specified by:
      getName in interface ProfileAuthenticator
      Parameters:
      locale - end user locale
      Returns:
      localized authenticator name
    • getValueNames

      public Enumeration<String> getValueNames()
      Retrieves a list of names of the value parameter.
      Specified by:
      getValueNames in interface ProfileAuthenticator
      Returns:
      a list of property names
    • isValueWriteable

      public boolean isValueWriteable(String name)
      Description copied from interface: ProfileAuthenticator
      Checks if the value of the given property should be serializable into the request. Passsword or other security-related value may not be desirable for storage.
      Specified by:
      isValueWriteable in interface ProfileAuthenticator
      Parameters:
      name - property name
      Returns:
      true if the property is not security related
    • getValueDescriptor

      public IDescriptor getValueDescriptor(Locale locale, String name)
      Description copied from interface: ProfileAuthenticator
      Retrieves the descriptor of the given value property by name.
      Specified by:
      getValueDescriptor in interface ProfileAuthenticator
      Parameters:
      locale - user locale
      name - property name
      Returns:
      descriptor of the requested property
    • populate

      public void populate(IAuthToken token, Request request) throws EProfileException
      Description copied from interface: ProfileAuthenticator
      Populates authentication specific information into the request for auditing purposes.
      Specified by:
      populate in interface ProfileAuthenticator
      Parameters:
      token - authentication token
      request - request
      Throws:
      EProfileException - failed to populate
    • getText

      public String getText(Locale locale)
      Retrieves the localizable description of this policy.
      Specified by:
      getText in interface ProfileAuthenticator
      Parameters:
      locale - end user locale
      Returns:
      localized authenticator description