Class UserDatabaseRealm

All Implemented Interfaces:
MBeanRegistration, Contained, JmxEnabled, Lifecycle, Realm

public class UserDatabaseRealm extends RealmBase
Implementation of Realm that is based on an implementation of UserDatabase made available through the JNDI resources configured for this instance of Catalina. Set the resourceName parameter to the JNDI resources name for the configured instance of UserDatabase that we should consult.
Since:
4.1
Author:
Craig R. McClanahan
  • Field Details

    • database

      protected volatile UserDatabase database
      The UserDatabase we will use to authenticate users and identify associated roles.
    • resourceName

      protected String resourceName
      The global JNDI name of the UserDatabase resource we will be utilizing.
  • Constructor Details

    • UserDatabaseRealm

      public UserDatabaseRealm()
  • Method Details

    • getResourceName

      public String getResourceName()
      Returns:
      the global JNDI name of the UserDatabase resource we will be using.
    • setResourceName

      public void setResourceName(String resourceName)
      Set the global JNDI name of the UserDatabase resource we will be using.
      Parameters:
      resourceName - The new global JNDI name
    • getUseStaticPrincipal

      public boolean getUseStaticPrincipal()
      Returns:
      the useStaticPrincipal flag
    • setUseStaticPrincipal

      public void setUseStaticPrincipal(boolean useStaticPrincipal)
      Allows using a static principal disconnected from the user database.
      Parameters:
      useStaticPrincipal - the new value
    • getLocalJndiResource

      public boolean getLocalJndiResource()
      Determines whether this Realm is configured to obtain the associated UserDatabase from the global JNDI context or a local (web application) JNDI context.
      Returns:
      true if a local JNDI context will be used, false if the the global JNDI context will be used
    • setLocalJndiResource

      public void setLocalJndiResource(boolean localJndiResource)
      Configure whether this Realm obtains the associated UserDatabase from the global JNDI context or a local (web application) JNDI context.
      Parameters:
      localJndiResource - true to use a local JNDI context, false to use the global JNDI context
    • backgroundProcess

      public void backgroundProcess()
      Specified by:
      backgroundProcess in interface Realm
      Overrides:
      backgroundProcess in class RealmBase
    • getPassword

      protected String getPassword(String username)
      Description copied from class: RealmBase
      Get the password for the specified user.
      Specified by:
      getPassword in class RealmBase
      Parameters:
      username - The user name
      Returns:
      the password associated with the given principal's user name.
    • getRoles

      public static String[] getRoles(User user)
    • getPrincipal

      protected Principal getPrincipal(String username)
      Description copied from class: RealmBase
      Get the principal associated with the specified user.
      Specified by:
      getPrincipal in class RealmBase
      Parameters:
      username - The user name
      Returns:
      the Principal associated with the given user name.
    • startInternal

      protected void startInternal() throws LifecycleException
      Description copied from class: RealmBase
      Prepare for the beginning of active use of the public methods of this component and implement the requirements of LifecycleBase.startInternal().
      Overrides:
      startInternal in class RealmBase
      Throws:
      LifecycleException - if this component detects a fatal error that prevents this component from being used
    • stopInternal

      protected void stopInternal() throws LifecycleException
      Description copied from class: RealmBase
      Gracefully terminate the active use of the public methods of this component and implement the requirements of LifecycleBase.stopInternal().
      Overrides:
      stopInternal in class RealmBase
      Throws:
      LifecycleException - if this component detects a fatal error that needs to be reported
    • isAvailable

      public boolean isAvailable()
      Description copied from interface: Realm
      Return the availability of the realm for authentication.
      Returns:
      true if the realm is able to perform authentication