Class MemoryRealm

  • All Implemented Interfaces:
    javax.management.MBeanRegistration, Contained, JmxEnabled, Lifecycle, Realm
    Direct Known Subclasses:
    JAASMemoryLoginModule

    public class MemoryRealm
    extends RealmBase
    Simple implementation of Realm that reads an XML file to configure the valid users, passwords, and roles. The file format (and default file location) are identical to those currently supported by Tomcat 3.X.

    IMPLEMENTATION NOTE: It is assumed that the in-memory collection representing our defined users (and their roles) is initialized at application startup and never modified again. Therefore, no thread synchronization is performed around accesses to the principals collection.

    Author:
    Craig R. McClanahan
    • Constructor Detail

      • MemoryRealm

        public MemoryRealm()
    • Method Detail

      • getPathname

        public java.lang.String getPathname()
        Returns:
        the pathname of our XML file containing user definitions.
      • setPathname

        public void setPathname​(java.lang.String pathname)
        Set the pathname of our XML file containing user definitions. If a relative pathname is specified, it is resolved against "catalina.base".
        Parameters:
        pathname - The new pathname
      • authenticate

        public java.security.Principal authenticate​(java.lang.String username,
                                                    java.lang.String credentials)
        Return the Principal associated with the specified username and credentials, if there is one; otherwise return null.
        Specified by:
        authenticate in interface Realm
        Overrides:
        authenticate in class RealmBase
        Parameters:
        username - Username of the Principal to look up
        credentials - Password or other credentials to use in authenticating this username
        Returns:
        the associated principal, or null if there is none.
      • getDigester

        protected Digester getDigester()
        Returns:
        a configured Digester to use for processing the XML input file, creating a new one if necessary.
      • getPassword

        protected java.lang.String getPassword​(java.lang.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.
      • getPrincipal

        protected java.security.Principal getPrincipal​(java.lang.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.