mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

floblanc
02.04.2008 309b2218a5187eccabeac2114eec3c7b926f3256
Add methods to read the configuration parameters from Network group resource limit.
2 files modified
94 ■■■■■ changed files
opends/src/server/org/opends/server/core/networkgroups/NetworkGroup.java 48 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/core/networkgroups/ResourceLimits.java 46 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/core/networkgroups/NetworkGroup.java
@@ -25,6 +25,7 @@
 *      Copyright 2007-2008 Sun Microsystems, Inc.
 */
package org.opends.server.core.networkgroups;
import org.opends.messages.Message;
import static org.opends.messages.CoreMessages.*;
import static org.opends.server.util.Validator.ensureNotNull;
@@ -34,6 +35,10 @@
import java.util.TreeMap;
import java.util.Collection;
import org.opends.server.admin.std.meta.
        NetworkGroupResourceLimitsCfgDefn.ReferralBindPolicy;
import org.opends.server.admin.std.meta.
        NetworkGroupResourceLimitsCfgDefn.ReferralPolicy;
import org.opends.server.api.ClientConnection;
import org.opends.server.core.*;
import org.opends.server.protocols.ldap.LDAPMessage;
@@ -44,7 +49,6 @@
import org.opends.server.types.operation.PreParseOperation;
import org.opends.server.workflowelement.WorkflowElement;
/**
 * This class defines the network group. A network group is used to categorize
 * client connections. A network group is defined by a set of criteria, a
@@ -852,6 +856,48 @@
    return 0;
  }
  /**
   * Gets the referral policy. The referral policy defines the behavior
   * when a referral or a search continuation reference is received.
   * The referral can either be discarded (ie an error is returned to the
   * client), forwarded (ie the result is passed as-is to the client) or
   * followed (ie the server contacts the server targeted by the referral to
   * pursue the request).
   * @return the referral policy for this network group
   */
  public ReferralPolicy getReferralPolicy() {
    if (resourceLimits != null) {
      return resourceLimits.getReferralPolicy();
    }
    return ReferralPolicy.FORWARD;
  }
  /**
   * Gets the referral bind policy. The referral bind policy defines
   * the bind credentials used when the server tries to follow a referral. It
   * can either bind to the referred server anonymously, or using the same
   * credentials as in the original request.
   * @return the referral binf policy
   */
  public ReferralBindPolicy getReferralBindPolicy() {
    if (resourceLimits != null) {
      return resourceLimits.getReferralBindPolicy();
    }
    return ReferralBindPolicy.ANONYMOUS;
  }
  /**
   * Gets the referral hop limit. When configured to follow referrals,
   * the request to the referred server can also contain a referral. The hop
   * limit is the maximum number of subsequent operations.
   * @return the referral hop limit
   */
  public int getReferralHopLimit() {
    if (resourceLimits != null) {
      return resourceLimits.getReferralHopLimit();
    }
    return 0;
  }
  /**
   * Checks the request filtering policy.
opends/src/server/org/opends/server/core/networkgroups/ResourceLimits.java
@@ -33,6 +33,10 @@
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.std.meta.
        NetworkGroupResourceLimitsCfgDefn.ReferralBindPolicy;
import org.opends.server.admin.std.meta.
        NetworkGroupResourceLimitsCfgDefn.ReferralPolicy;
import org.opends.server.admin.std.server.NetworkGroupResourceLimitsCfg;
import org.opends.server.api.ClientConnection;
import org.opends.server.types.ByteString;
@@ -78,6 +82,15 @@
  // The minimum substring length in a search
  private int minSearchSubstringLength;
  // The referral policy
  private ReferralPolicy referralPolicy = ReferralPolicy.FORWARD;
  // The referral policy
  private ReferralBindPolicy referralBindPolicy = ReferralBindPolicy.ANONYMOUS;
  // The referral hop limit
  private int referralHopLimit = 0;
  // The number of connections in the group
  private int numConnections = 0;
@@ -118,6 +131,11 @@
    searchSizeLimit = -1;
    searchTimeLimit = -1;
    minSearchSubstringLength = 0;
    referralPolicy = ReferralPolicy.FORWARD;
    referralBindPolicy = ReferralBindPolicy.ANONYMOUS;
    referralHopLimit = 0;
    isConfigured = false;
    if (config != null) {
      config.removeChangeListener(this);
@@ -152,6 +170,10 @@
      }
      minSearchSubstringLength = resourcesCfg.getMinSubstringLength();
      referralPolicy = resourcesCfg.getReferralPolicy();
      referralBindPolicy = resourcesCfg.getReferralBindPolicy();
      referralHopLimit = resourcesCfg.getReferralHopLimit();
      if (config == null) {
        resourcesCfg.addChangeListener(this);
      }
@@ -254,6 +276,30 @@
  }
  /**
   * Returns the referral policy.
   * @return referral policy
   */
  public ReferralPolicy getReferralPolicy() {
    return referralPolicy;
  }
  /**
   * Returns the referralBindPolicy.
   * @return referral bind policy
   */
  public ReferralBindPolicy getReferralBindPolicy() {
    return referralBindPolicy;
  }
  /**
   * Returns the referral hop limit.
   * @return referral hop limit
   */
  public int getReferralHopLimit() {
    return referralHopLimit;
  }
  /**
   * Adds a connection to the resource group.
   *
   * @param connection the ClientConnection to ad