Author: remm
Date: Mon Nov 17 16:44:24 2014
New Revision: 1640186
URL: http://svn.apache.org/r1640186
Log:
Add CredentialHandler support to storeconfig.
Added:
tomcat/trunk/java/org/apache/catalina/storeconfig/CredentialHandlerSF.java
Modified:
tomcat/trunk/java/org/apache/catalina/realm/NestedCredentialHandler.java
tomcat/trunk/java/org/apache/catalina/storeconfig/RealmSF.java
tomcat/trunk/java/org/apache/catalina/storeconfig/server-registry.xml
Modified:
tomcat/trunk/java/org/apache/catalina/realm/NestedCredentialHandler.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/NestedCredentialHandler.java?rev=1640186&r1=1640185&r2=1640186&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/NestedCredentialHandler.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/realm/NestedCredentialHandler.java
Mon Nov 17 16:44:24 2014
@@ -57,4 +57,9 @@ public class NestedCredentialHandler imp
public void addCredentialHandler(CredentialHandler handler) {
credentialHandlers.add(handler);
}
+
+ public CredentialHandler[] getCredentialHandlers() {
+ return credentialHandlers.toArray(new CredentialHandler[0]);
+ }
+
}
Added:
tomcat/trunk/java/org/apache/catalina/storeconfig/CredentialHandlerSF.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/storeconfig/CredentialHandlerSF.java?rev=1640186&view=auto
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/storeconfig/CredentialHandlerSF.java
(added)
+++ tomcat/trunk/java/org/apache/catalina/storeconfig/CredentialHandlerSF.java
Mon Nov 17 16:44:24 2014
@@ -0,0 +1,86 @@
+/*
+ * 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.CredentialHandler;
+import org.apache.catalina.realm.NestedCredentialHandler;
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
+
+/**
+ * Store server.xml Element CredentialHandler
+ */
+public class CredentialHandlerSF extends StoreFactoryBase {
+
+ private static Log log = LogFactory.getLog(CredentialHandlerSF.class);
+
+ @Override
+ public void store(PrintWriter aWriter, int indent, Object aElement)
+ throws Exception {
+ if (aElement instanceof NestedCredentialHandler) {
+ 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);
+ storeChildren(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
+ */
+ @Override
+ public void storeChildren(PrintWriter aWriter, int indent, Object aRealm,
+ StoreDescription parentDesc) throws Exception {
+ if (aRealm instanceof NestedCredentialHandler) {
+ NestedCredentialHandler nestedCredentialHandler =
(NestedCredentialHandler) aRealm;
+
+ // Store nested <CredentialHandler> element
+ CredentialHandler[] credentialHandlers =
nestedCredentialHandler.getCredentialHandlers();
+ storeElementArray(aWriter, indent, credentialHandlers);
+ }
+ }
+
+}
\ No newline at end of file
Modified: 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=1640186&r1=1640185&r2=1640186&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/storeconfig/RealmSF.java (original)
+++ tomcat/trunk/java/org/apache/catalina/storeconfig/RealmSF.java Mon Nov 17
16:44:24 2014
@@ -19,6 +19,7 @@ package org.apache.catalina.storeconfig;
import java.io.PrintWriter;
+import org.apache.catalina.CredentialHandler;
import org.apache.catalina.Realm;
import org.apache.catalina.realm.CombinedRealm;
import org.apache.juli.logging.Log;
@@ -81,6 +82,11 @@ public class RealmSF extends StoreFactor
Realm[] realms = combinedRealm.getNestedRealms();
storeElementArray(aWriter, indent, realms);
}
+ // Store nested <CredentialHandler> element
+ CredentialHandler credentialHandler = ((Realm)
aRealm).getCredentialHandler();
+ if (credentialHandler != null) {
+ storeElement(aWriter, indent, credentialHandler);
+ }
}
}
\ No newline at end of file
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=1640186&r1=1640185&r2=1640186&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/storeconfig/server-registry.xml
(original)
+++ tomcat/trunk/java/org/apache/catalina/storeconfig/server-registry.xml Mon
Nov 17 16:44:24 2014
@@ -158,13 +158,21 @@
tag="Realm"
standard="false"
default="false"
- children="false"
+ children="true"
tagClass="org.apache.catalina.Realm"
storeFactoryClass="org.apache.catalina.storeconfig.RealmSF">
<TransientAttribute>domain</TransientAttribute>
<TransientAttribute>realmPath</TransientAttribute>
</Description>
<Description
+ tag="CredentialHandler"
+ standard="false"
+ default="false"
+ children="false"
+ tagClass="org.apache.catalina.CredentialHandler"
+
storeFactoryClass="org.apache.catalina.storeconfig.CredentialHandlerSF">
+ </Description>
+ <Description
tag="Parameter"
standard="true"
default="false"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]