From 90ddf1f7538c304fe99c80813e5860bb89025c51 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Sun, 24 Jun 2007 01:38:21 +0000
Subject: [PATCH] Update the set of plugins included with the server so that they will look for changes to the set of registered plugin types and reject the change if any of the new plugin types are not appropriate.
---
opends/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 49 insertions(+), 0 deletions(-)
diff --git a/opends/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java b/opends/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java
index 3925a4b..e35cd8b 100644
--- a/opends/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java
+++ b/opends/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java
@@ -36,6 +36,8 @@
import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
+import org.opends.server.admin.server.ConfigurationChangeListener;
+import org.opends.server.admin.std.meta.PluginCfgDefn;
import org.opends.server.admin.std.server.PluginCfg;
import org.opends.server.api.PasswordStorageScheme;
import org.opends.server.api.plugin.DirectoryServerPlugin;
@@ -50,10 +52,12 @@
import org.opends.server.types.AttributeType;
import org.opends.server.types.AttributeValue;
import org.opends.server.types.ByteString;
+import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.Entry;
import org.opends.server.types.ErrorLogCategory;
import org.opends.server.types.ErrorLogSeverity;
import org.opends.server.types.LDIFImportConfig;
+import org.opends.server.types.ResultCode;
import org.opends.server.types.DebugLogLevel;
import static org.opends.server.loggers.ErrorLogger.*;
@@ -72,6 +76,7 @@
*/
public final class PasswordPolicyImportPlugin
extends DirectoryServerPlugin<PluginCfg>
+ implements ConfigurationChangeListener<PluginCfg>
{
/**
* The tracer object for the debug logger.
@@ -180,6 +185,8 @@
PluginCfg configuration)
throws ConfigException
{
+ configuration.addChangeListener(this);
+
// Make sure that the plugin has been enabled for the appropriate types.
for (PluginType t : pluginTypes)
{
@@ -335,5 +342,47 @@
return LDIFPluginResult.SUCCESS;
}
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isConfigurationChangeAcceptable(PluginCfg configuration,
+ List<String> unacceptableReasons)
+ {
+ boolean configAcceptable = true;
+
+ // Ensure that the set of plugin types contains only LDIF import.
+ for (PluginCfgDefn.PluginType pluginType : configuration.getPluginType())
+ {
+ switch (pluginType)
+ {
+ case LDIFIMPORT:
+ // This is the only acceptable type.
+ break;
+
+
+ default:
+ int msgID = MSGID_PLUGIN_PWPIMPORT_INVALID_PLUGIN_TYPE;
+ String message = getMessage(msgID, pluginType.toString());
+ unacceptableReasons.add(message);
+ configAcceptable = false;
+ }
+ }
+
+ return configAcceptable;
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public ConfigChangeResult applyConfigurationChange(PluginCfg configuration)
+ {
+ // No implementation is required.
+ return new ConfigChangeResult(ResultCode.SUCCESS, false);
+ }
}
--
Gitblit v1.10.0