From a21bc2bedaf1fc0ce94c55529272e3544f754768 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Mon, 21 Nov 2016 11:42:05 +0000
Subject: [PATCH] OPENDJ-3476 Provide a default CoreConfigManager and add a Directory.getCoreConfigManager() method
---
opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java | 72 ++++++++++++++++-------------------
opendj-server-legacy/src/main/java/org/opends/server/core/CoreConfigManager.java | 16 ++++----
2 files changed, 41 insertions(+), 47 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/CoreConfigManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/CoreConfigManager.java
index 889ce0e..5839b58 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/CoreConfigManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/CoreConfigManager.java
@@ -54,7 +54,7 @@
private final ServerContext serverContext;
/** The core attributes. */
- private volatile CoreAttributes coreAttributes;
+ private volatile CoreAttributes coreAttributes = new CoreAttributes();
/**
* Creates a new instance of this core config manager.
@@ -87,11 +87,11 @@
*/
private boolean allowAttributeNameExceptions;
/** The policy to use regarding syntax enforcement. */
- private AcceptRejectWarn syntaxEnforcementPolicy;
+ private AcceptRejectWarn syntaxEnforcementPolicy = AcceptRejectWarn.REJECT;
/** The result code that should be used for internal "server" errors. */
- private ResultCode serverErrorResultCode;
+ private ResultCode serverErrorResultCode = ResultCode.OTHER;
/** The policy to use regarding single structural objectclass enforcement. */
- private AcceptRejectWarn singleStructuralClassPolicy;
+ private AcceptRejectWarn singleStructuralClassPolicy = AcceptRejectWarn.REJECT;
/** Indicates whether the server should send a response to operations that have been abandoned. */
private boolean notifyAbandonedOperations;
/**
@@ -110,7 +110,7 @@
*/
private DN proxiedAuthorizationIdentityMapperDN;
/** The writability mode for the Directory Server. */
- private WritabilityMode writabilityMode;
+ private WritabilityMode writabilityMode = WritabilityMode.ENABLED;
/** Indicates whether the server should reject unauthenticated requests. */
private boolean rejectUnauthenticatedRequests;
/** Indicates whether a simple bind request containing a DN must also provide a password. */
@@ -118,12 +118,12 @@
/** The maximum number of candidates that should be check for matches during a search. */
private int lookthroughLimit;
/** The sets of mail server properties. */
- private List<Properties> mailServerPropertySets;
+ private List<Properties> mailServerPropertySets = Collections.emptyList();
/** The set of allowed task classes. */
- private Set<String> allowedTasks;
+ private Set<String> allowedTasks = Collections.emptySet();
/** The set of disabled privileges. */
- private Set<Privilege> disabledPrivileges;
+ private Set<Privilege> disabledPrivileges = Collections.emptySet();
/** Indicates whether bind responses should include failure reason messages. */
private boolean returnBindErrorMessages;
/** The idle time limit for the server. */
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
index 3b7bf8f..06953a9 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
@@ -34,7 +34,6 @@
import java.lang.management.ManagementFactory;
import java.net.InetAddress;
import java.text.DecimalFormat;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -741,7 +740,6 @@
}
try
{
- directoryServer.coreConfigManager = new CoreConfigManager(directoryServer.serverContext);
directoryServer.coreConfigManager.initializeCoreConfig();
}
catch (Exception e)
@@ -1004,6 +1002,7 @@
operatingSystem = OperatingSystem.forName(System.getProperty("os.name"));
serverContext = new DirectoryServerContext();
virtualAttributeConfigManager = new VirtualAttributeConfigManager(serverContext);
+ coreConfigManager = new CoreConfigManager(serverContext);
memoryQuota = new MemoryQuota();
diskSpaceMonitor = new DiskSpaceMonitor();
}
@@ -1379,7 +1378,6 @@
virtualAttributeConfigManager.initializeVirtualAttributes();
// The core Directory Server configuration.
- coreConfigManager = new CoreConfigManager(serverContext);
coreConfigManager.initializeCoreConfig();
initializeCryptoManager();
@@ -1587,7 +1585,7 @@
*/
public static boolean mailServerConfigured()
{
- return directoryServer.coreConfigManager != null && directoryServer.coreConfigManager.isMailServerConfigured();
+ return getCoreConfigManager().isMailServerConfigured();
}
/**
@@ -1599,8 +1597,7 @@
*/
public static List<Properties> getMailServerPropertySets()
{
- return directoryServer.coreConfigManager != null ?
- directoryServer.coreConfigManager.getMailServerPropertySets() : new ArrayList<Properties>(0);
+ return getCoreConfigManager().getMailServerPropertySets();
}
/**
@@ -2509,7 +2506,7 @@
// Ensure default policy is synchronized.
synchronized (directoryServer.authenticationPolicies)
{
- if (directoryServer.coreConfigManager.getDefaultPasswordPolicyDN().equals(configEntryDN))
+ if (getCoreConfigManager().getDefaultPasswordPolicyDN().equals(configEntryDN))
{
// The correct policy type is enforced by the core config manager.
directoryServer.defaultPasswordPolicy = (PasswordPolicy) policy;
@@ -2540,7 +2537,7 @@
// Ensure default policy is synchronized.
synchronized (directoryServer.authenticationPolicies)
{
- if (directoryServer.coreConfigManager.getDefaultPasswordPolicyDN().equals(configEntryDN))
+ if (getCoreConfigManager().getDefaultPasswordPolicyDN().equals(configEntryDN))
{
directoryServer.defaultPasswordPolicy = null;
}
@@ -2563,10 +2560,7 @@
*/
public static DN getDefaultPasswordPolicyDN()
{
- synchronized (directoryServer.authenticationPolicies)
- {
- return directoryServer.coreConfigManager.getDefaultPasswordPolicyDN();
- }
+ return getCoreConfigManager().getDefaultPasswordPolicyDN();
}
/**
@@ -2594,7 +2588,7 @@
// Ensure default policy is synchronized.
synchronized (directoryServer.authenticationPolicies)
{
- DN defaultPasswordPolicyDN = directoryServer.coreConfigManager.getDefaultPasswordPolicyDN();
+ DN defaultPasswordPolicyDN = getCoreConfigManager().getDefaultPasswordPolicyDN();
assert null != directoryServer.authenticationPolicies
.get(defaultPasswordPolicyDN) :
"Internal Error: no default password policy defined.";
@@ -3055,8 +3049,7 @@
*/
public static ResultCode getServerErrorResultCode()
{
- return directoryServer.coreConfigManager != null ?
- directoryServer.coreConfigManager.getServerErrorResultCode() : ResultCode.OTHER;
+ return getCoreConfigManager().getServerErrorResultCode();
}
/**
@@ -3069,7 +3062,7 @@
*/
public static boolean addMissingRDNAttributes()
{
- return directoryServer.coreConfigManager.isAddMissingRDNAttributes();
+ return getCoreConfigManager().isAddMissingRDNAttributes();
}
/**
@@ -3087,8 +3080,7 @@
@Deprecated
public static boolean allowAttributeNameExceptions()
{
- return directoryServer.coreConfigManager != null
- && directoryServer.coreConfigManager.isAllowAttributeNameExceptions();
+ return getCoreConfigManager().isAllowAttributeNameExceptions();
}
/**
@@ -3099,7 +3091,7 @@
*/
public static boolean checkSchema()
{
- return directoryServer.coreConfigManager.isCheckSchema();
+ return getCoreConfigManager().isCheckSchema();
}
/**
@@ -3111,7 +3103,7 @@
*/
public static AcceptRejectWarn getSingleStructuralObjectClassPolicy()
{
- return directoryServer.coreConfigManager.getSingleStructuralObjectClassPolicy();
+ return getCoreConfigManager().getSingleStructuralObjectClassPolicy();
}
/**
@@ -3123,8 +3115,7 @@
*/
public static AcceptRejectWarn getSyntaxEnforcementPolicy()
{
- return directoryServer.coreConfigManager != null ?
- directoryServer.coreConfigManager.getSyntaxEnforcementPolicy() : AcceptRejectWarn.REJECT;
+ return getCoreConfigManager().getSyntaxEnforcementPolicy();
}
/**
@@ -3140,7 +3131,7 @@
*/
public static boolean notifyAbandonedOperations()
{
- return directoryServer.coreConfigManager.isNotifyAbandonedOperations();
+ return getCoreConfigManager().isNotifyAbandonedOperations();
}
/**
@@ -3552,7 +3543,7 @@
*/
public static IdentityMapper<?> getProxiedAuthorizationIdentityMapper()
{
- DN dnMapper = directoryServer.coreConfigManager.getProxiedAuthorizationIdentityMapperDN();
+ DN dnMapper = getCoreConfigManager().getProxiedAuthorizationIdentityMapperDN();
return dnMapper != null ? directoryServer.identityMappers.get(dnMapper) : null;
}
@@ -3685,7 +3676,7 @@
ClientConnection clientConnection = operation.getClientConnection();
//Reject or accept the unauthenticated requests based on the configuration settings.
if (!clientConnection.getAuthenticationInfo().isAuthenticated() &&
- (directoryServer.coreConfigManager.isRejectUnauthenticatedRequests() ||
+ (getCoreConfigManager().isRejectUnauthenticatedRequests() ||
(directoryServer.lockdownMode && !isAllowedInLockDownMode)))
{
switch(operation.getOperationType())
@@ -3852,6 +3843,11 @@
directoryServer.synchronizationProviders.remove(provider);
}
+ public static CoreConfigManager getCoreConfigManager()
+ {
+ return directoryServer.coreConfigManager;
+ }
+
/**
* Retrieves a set containing the names of the allowed tasks that may be
* invoked in the server.
@@ -3861,8 +3857,7 @@
*/
public static Set<String> getAllowedTasks()
{
- return directoryServer.coreConfigManager != null ?
- directoryServer.coreConfigManager.getAllowedTasks() : new HashSet<String>(0);
+ return getCoreConfigManager().getAllowedTasks();
}
/**
@@ -3875,8 +3870,7 @@
*/
public static boolean isDisabled(Privilege privilege)
{
- return directoryServer.coreConfigManager != null ?
- directoryServer.coreConfigManager.getDisabledPrivileges().contains(privilege) : false;
+ return getCoreConfigManager().getDisabledPrivileges().contains(privilege);
}
/**
@@ -3888,7 +3882,7 @@
*/
public static boolean returnBindErrorMessages()
{
- return directoryServer.coreConfigManager.isReturnBindErrorMessages();
+ return getCoreConfigManager().isReturnBindErrorMessages();
}
/**
@@ -4603,7 +4597,7 @@
}
}
- final long maxAllowed = directoryServer.coreConfigManager.getMaxAllowedConnections();
+ final long maxAllowed = getCoreConfigManager().getMaxAllowedConnections();
if (0 < maxAllowed && maxAllowed <= directoryServer.currentConnections)
{
return -1;
@@ -4710,7 +4704,7 @@
*/
public static int getSizeLimit()
{
- return directoryServer.coreConfigManager.getSizeLimit();
+ return getCoreConfigManager().getSizeLimit();
}
/**
@@ -4722,7 +4716,7 @@
*/
public static int getLookthroughLimit()
{
- return directoryServer.coreConfigManager.getLookthroughLimit();
+ return getCoreConfigManager().getLookthroughLimit();
}
/**
@@ -4757,7 +4751,7 @@
public static boolean allowNewPersistentSearch()
{
//-1 indicates that there is no limit.
- int max = directoryServer.coreConfigManager.getMaxPSearches();
+ int max = getCoreConfigManager().getMaxPSearches();
return max == -1 || directoryServer.activePSearches.get() < max;
}
@@ -4770,7 +4764,7 @@
*/
public static int getTimeLimit()
{
- return directoryServer.coreConfigManager.getTimeLimit();
+ return getCoreConfigManager().getTimeLimit();
}
/**
@@ -4783,7 +4777,7 @@
*/
public static boolean getUseNanoTime()
{
- return directoryServer.coreConfigManager.isUseNanoTime();
+ return getCoreConfigManager().isUseNanoTime();
}
/**
@@ -4794,7 +4788,7 @@
*/
public static WritabilityMode getWritabilityMode()
{
- return directoryServer.coreConfigManager.getWritabilityMode();
+ return getCoreConfigManager().getWritabilityMode();
}
/**
@@ -4807,7 +4801,7 @@
*/
public static boolean bindWithDNRequiresPassword()
{
- return directoryServer.coreConfigManager.isBindWithDNRequiresPassword();
+ return getCoreConfigManager().isBindWithDNRequiresPassword();
}
/**
@@ -5527,7 +5521,7 @@
*/
public static int getMaxInternalBufferSize()
{
- return directoryServer.coreConfigManager.getMaxInternalBufferSize();
+ return getCoreConfigManager().getMaxInternalBufferSize();
}
/**
--
Gitblit v1.10.0