Author: kfujino
Date: Thu Feb 7 08:43:27 2013
New Revision: 1443353
URL: http://svn.apache.org/viewvc?rev=1443353&view=rev
Log:
Add support for CombinedRealm in Storeconfig.
Added:
tomcat/trunk/java/org/apache/catalina/storeconfig/RealmSF.java (with
props)
Modified:
tomcat/trunk/java/org/apache/catalina/realm/CombinedRealm.java
tomcat/trunk/java/org/apache/catalina/storeconfig/server-registry.xml
Modified: tomcat/trunk/java/org/apache/catalina/realm/CombinedRealm.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/CombinedRealm.java?rev=1443353&r1=1443352&r2=1443353&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/CombinedRealm.java (original)
+++ tomcat/trunk/java/org/apache/catalina/realm/CombinedRealm.java Thu Feb 7
08:43:27 2013
@@ -84,6 +84,12 @@ public class CombinedRealm extends Realm
return result;
}
+ /**
+ * Return the list of Realms contained by this Realm.
+ */
+ public Realm[] getNestedRealms() {
+ return realms.toArray(new Realm[0]);
+ }
/**
* Return the Principal associated with the specified username, which
Added: tomcat/trunk/java/org/apache/catalina/storeconfig/RealmSF.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/storeconfig/RealmSF.java?rev=1443353&view=auto
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/storeconfig/RealmSF.java (added)
+++ tomcat/trunk/java/org/apache/catalina/storeconfig/RealmSF.java Thu Feb 7
08:43:27 2013
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.catalina.storeconfig;
+
+import java.io.PrintWriter;
+
+import org.apache.catalina.Realm;
+import org.apache.catalina.realm.CombinedRealm;
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
+
+/**
+ * Store server.xml Element Realm
+ */
+public class RealmSF extends StoreFactoryBase {
+
+ private static Log log = LogFactory.getLog(RealmSF.class);
+
+ @Override
+ public void store(PrintWriter aWriter, int indent, Object aElement)
+ throws Exception {
+ if (aElement instanceof CombinedRealm) {
+ StoreDescription elementDesc = getRegistry().findDescription(
+ aElement.getClass());
+
+ if (elementDesc != null) {
+ if (log.isDebugEnabled())
+ log.debug(sm.getString("factory.storeTag",
+ elementDesc.getTag(), aElement));
+ getStoreAppender().printIndent(aWriter, indent + 2);
+ getStoreAppender().printOpenTag(aWriter, indent + 2, aElement,
+ elementDesc);
+ storeChilds(aWriter, indent + 2, aElement, elementDesc);
+ getStoreAppender().printIndent(aWriter, indent + 2);
+ getStoreAppender().printCloseTag(aWriter, elementDesc);
+ } else {
+ if (log.isWarnEnabled())
+ log.warn(sm.getString("factory.storeNoDescriptor",
+ aElement.getClass()));
+ }
+ } else {
+ super.store(aWriter, indent, aElement);
+ }
+ }
+
+ /**
+ * Store the specified Realm properties and child (Realm)
+ *
+ * @param aWriter
+ * PrintWriter to which we are storing
+ * @param indent
+ * Number of spaces to indent this element
+ * @param aRealm
+ * Realm whose properties are being stored
+ *
+ * @exception Exception
+ * if an exception occurs while storing
+ */
+ public void storeChilds(PrintWriter aWriter, int indent, Object aRealm,
+ StoreDescription parentDesc) throws Exception {
+ if (aRealm instanceof CombinedRealm) {
+ CombinedRealm combinedRealm = (CombinedRealm) aRealm;
+
+ // Store nested <Realm> element
+ Realm[] realms = combinedRealm.getNestedRealms();
+ storeElementArray(aWriter, indent, realms);
+ }
+ }
+
+}
\ No newline at end of file
Propchange: tomcat/trunk/java/org/apache/catalina/storeconfig/RealmSF.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: tomcat/trunk/java/org/apache/catalina/storeconfig/server-registry.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/storeconfig/server-registry.xml?rev=1443353&r1=1443352&r2=1443353&view=diff
==============================================================================
Binary files - no diff available.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]