FileDocCategorySizeDatePackage
MemoryUserDatabaseFactory.javaAPI DocApache Tomcat 6.0.144219Fri Jul 20 04:20:34 BST 2007org.apache.catalina.users

MemoryUserDatabaseFactory

public class MemoryUserDatabaseFactory extends Object implements ObjectFactory

JNDI object creation factory for MemoryUserDatabase instances. This makes it convenient to configure a user database in the global JNDI resources associated with this Catalina instance, and then link to that resource for web applications that administer the contents of the user database.

The MemoryUserDatabase instance is configured based on the following parameter values:

  • pathname - Absolute or relative (to the directory path specified by the catalina.base system property) pathname to the XML file from which our user information is loaded, and to which it is stored. [conf/tomcat-users.xml]
author
Craig R. McClanahan
version
$Revision: 467222 $ $Date: 2006-10-24 05:17:11 +0200 (mar., 24 oct. 2006) $
since
4.1

Fields Summary
Constructors Summary
Methods Summary
public java.lang.ObjectgetObjectInstance(java.lang.Object obj, javax.naming.Name name, javax.naming.Context nameCtx, java.util.Hashtable environment)

Create and return a new MemoryUserDatabase instance that has been configured according to the properties of the specified Reference. If you instance can be created, return null instead.

param
obj The possibly null object containing location or reference information that can be used in creating an object
param
name The name of this object relative to nameCtx
param
nameCtx The context relative to which the name parameter is specified, or null if name is relative to the default initial context
param
environment The possibly null environment that is used in creating this object


        // We only know how to deal with <code>javax.naming.Reference</code>s
        // that specify a class name of "org.apache.catalina.UserDatabase"
        if ((obj == null) || !(obj instanceof Reference)) {
            return (null);
        }
        Reference ref = (Reference) obj;
        if (!"org.apache.catalina.UserDatabase".equals(ref.getClassName())) {
            return (null);
        }

        // Create and configure a MemoryUserDatabase instance based on the
        // RefAddr values associated with this Reference
        MemoryUserDatabase database = new MemoryUserDatabase(name.toString());
        RefAddr ra = null;

        ra = ref.get("pathname");
        if (ra != null) {
            database.setPathname(ra.getContent().toString());
        }

        ra = ref.get("readonly");
        if (ra != null) {
            database.setReadonly(Boolean.valueOf(ra.getContent().toString()).booleanValue());
        }

        // Return the configured database instance
        database.open();
        database.save();
        return (database);