Author: markt Date: Thu Jan 12 20:35:19 2012 New Revision: 1230767 URL: http://svn.apache.org/viewvc?rev=1230767&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=52443 Move the default Realm for the embedded case to the Engine
Modified: tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java Modified: tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java?rev=1230767&r1=1230766&r2=1230767&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java Thu Jan 12 20:35:19 2012 @@ -98,9 +98,9 @@ import org.apache.catalina.realm.RealmBa * In complex cases, you may prefer to use the ordinary Tomcat API to create * webapp contexts; for example, you might need to install a custom Loader * before the call to {@link Host#addChild(Container)}. To replicate the basic - * behavior of the <pre>addWebapp</pre> methods, you may want to call three - * methods of this class: {@link #getDefaultRealm()}, - * {@link #noDefaultWebXmlPath()}, and {@link #getDefaultWebXmlListener()}. + * behavior of the <pre>addWebapp</pre> methods, you may want to call two + * methods of this class: {@link #noDefaultWebXmlPath()} and + * {@link #getDefaultWebXmlListener()}. * * {@link #getDefaultRealm()} returns the simple security realm. * @@ -140,10 +140,6 @@ public class Tomcat { protected String hostname = "localhost"; protected String basedir; - // Default in-memory realm, will be set by default on - // created contexts. Can be replaced with setRealm() on - // the context. - protected Realm defaultRealm; private final Map<String, String> userPass = new HashMap<String, String>(); private final Map<String, List<String>> userRoles = new HashMap<String, List<String>>(); @@ -441,17 +437,6 @@ public class Tomcat { } /** - * Set a custom realm for auth. If not called, a simple - * default will be used, using an internal map. - * - * Must be called before adding a context. - */ - public void setDefaultRealm(Realm realm) { - defaultRealm = realm; - } - - - /** * Access to the engine, for further customization. */ public Engine getEngine() { @@ -460,6 +445,7 @@ public class Tomcat { engine = new StandardEngine(); engine.setName( "Tomcat" ); engine.setDefaultHost(hostname); + engine.setRealm(createDefaultRealm()); service.setContainer(engine); } return engine; @@ -520,11 +506,6 @@ public class Tomcat { ctx.setName(name); ctx.setPath(url); ctx.setDocBase(path); - if (defaultRealm == null) { - initSimpleAuth(); - } - ctx.setRealm(defaultRealm); - ctx.addLifecycleListener(new DefaultWebXmlListener()); ContextConfig ctxCfg = new ContextConfig(); @@ -563,27 +544,16 @@ public class Tomcat { return Constants.NoDefaultWebXml; } - /** - * For complex configurations, this accessor allows callers of this class - * to obtain the simple realm created by default. - * @return the simple in-memory realm created by default. - */ - public Realm getDefaultRealm() { - if (defaultRealm == null) { - initSimpleAuth(); - } - return defaultRealm; - } - - // ---------- Helper methods and classes ------------------- /** - * Initialize an in-memory realm. You can replace it - * for contexts with a real one. + * Create an in-memory realm. You can replace it for contexts with a real + * one. The Realm created here will be added to the Engine by default and + * may be replaced at the Engine level or over-ridden (as per normal Tomcat + * behaviour) at the Host or Context level. */ - protected void initSimpleAuth() { - defaultRealm = new RealmBase() { + protected Realm createDefaultRealm() { + return new RealmBase() { @Override protected String getName() { return "Simple"; Modified: tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java?rev=1230767&r1=1230766&r2=1230767&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java (original) +++ tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java Thu Jan 12 20:35:19 2012 @@ -63,6 +63,7 @@ public class TestRegistration extends To private static String[] basicMBeanNames() { return new String[] { "Tomcat:type=Engine", + "Tomcat:type=Realm,realmPath=/realm0", "Tomcat:type=MBeanFactory", "Tomcat:type=NamingResources", "Tomcat:type=Server", --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org