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 Detail

      • 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 Detail

      • UserDatabaseRealm

        public UserDatabaseRealm()
    • Method Detail

      • 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
      • 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.
      • 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