Class SimpleLogin

java.lang.Object
org.dlese.dpc.schemedit.security.login.BasicLogin
org.dlese.dpc.schemedit.security.login.SimpleLogin
All Implemented Interfaces:
LoginModule
Direct Known Subclasses:
DBLogin, FileLogin, LdapLogin, UcasLogin

public abstract class SimpleLogin extends BasicLogin
Base class for a variety of simple login modules that simply authenticate a user against some database of user credentials.

Based on Tagish JAAS Login Modules package .

Author:
Jonathan Ostwald
  • Field Details

    • principals

      protected Vector principals
    • pending

      protected Vector pending
    • commitSucceeded

      protected boolean commitSucceeded
  • Constructor Details

    • SimpleLogin

      public SimpleLogin()
  • Method Details

    • validateUser

      protected abstract Vector validateUser(String username, char[] password) throws LoginException
      Validate a user's credentials and either throw a LoginException (if validation fails) or return a Vector of Principals if validation succeeds.
      Parameters:
      username - The username
      password - The password
      Returns:
      a Vector of Principals that apply for this user.
      Throws:
      LoginException - if the login fails.
    • login

      public boolean login() throws LoginException
      Authenticate the user.
      Returns:
      true in all cases since this LoginModule should not be ignored.
      Throws:
      LoginException - if this LoginModule is unable to perform the authentication.
    • putPrincipal

      protected void putPrincipal(Set s, Principal p)
      Place the specified Principle in the subject and also record it in our principles Vector so we can remove them all later.
      Parameters:
      s - The Set to add the Principle to
      p - Principle to add
    • commit

      public boolean commit() throws LoginException
      This method is called if the LoginContext's overall authentication succeeded (the relevant REQUIRED, REQUISITE, SUFFICIENT and OPTIONAL LoginModules succeeded).

      If this LoginModule's own authentication attempt succeeded (checked by retrieving the private state saved by the login method), then this method associates a number of NTPrincipals with the Subject located in the LoginModule. If this LoginModule's own authentication attempted failed, then this method removes any state that was originally saved.

      Returns:
      true if this LoginModule's own login and commit attempts succeeded, or false otherwise.
      Throws:
      LoginException - if the commit fails.
    • abort

      public boolean abort() throws LoginException
      This method is called if the LoginContext's overall authentication failed. (the relevant REQUIRED, REQUISITE, SUFFICIENT and OPTIONAL LoginModules did not succeed).

      If this LoginModule's own authentication attempt succeeded (checked by retrieving the private state saved by the login and commit methods), then this method cleans up any state that was originally saved.

      Returns:
      false if this LoginModule's own login and/or commit attempts failed, and true otherwise.
      Throws:
      LoginException - if the abort fails.
    • logout

      public boolean logout() throws LoginException
      Logout the user.

      This method removes the Principals that were added by the commit method.

      Returns:
      true in all cases since this LoginModule should not be ignored.
      Throws:
      LoginException - if the logout fails.
    • showSharedState

      protected void showSharedState()
      Debugging utility to show the contents of the sharedState map
    • getLoginModuleName

      public String getLoginModuleName()
      Debuggin utility so login modules can print their name
      Returns:
      loginModule name