001/*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License").  You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
010 * or http://forgerock.org/license/CDDLv1.0.html.
011 * See the License for the specific language governing permissions
012 * and limitations under the License.
013 *
014 * When distributing Covered Code, include this CDDL HEADER in each
015 * file and include the License file at legal-notices/CDDLv1_0.txt.
016 * If applicable, add the following below this CDDL HEADER, with the
017 * fields enclosed by brackets "[]" replaced with your own identifying
018 * information:
019 *      Portions Copyright [yyyy] [name of copyright owner]
020 *
021 * CDDL HEADER END
022 *
023 *
024 *      Copyright 2008 Sun Microsystems, Inc.
025 */
026package org.opends.server.admin.std.meta;
027
028
029
030import java.util.Collection;
031import java.util.SortedSet;
032import org.opends.server.admin.AdministratorAction;
033import org.opends.server.admin.AggregationPropertyDefinition;
034import org.opends.server.admin.AliasDefaultBehaviorProvider;
035import org.opends.server.admin.BooleanPropertyDefinition;
036import org.opends.server.admin.client.AuthorizationException;
037import org.opends.server.admin.client.CommunicationException;
038import org.opends.server.admin.client.ConcurrentModificationException;
039import org.opends.server.admin.client.ManagedObject;
040import org.opends.server.admin.client.MissingMandatoryPropertiesException;
041import org.opends.server.admin.client.OperationRejectedException;
042import org.opends.server.admin.condition.Conditions;
043import org.opends.server.admin.DefaultBehaviorProvider;
044import org.opends.server.admin.DefinedDefaultBehaviorProvider;
045import org.opends.server.admin.DurationPropertyDefinition;
046import org.opends.server.admin.EnumPropertyDefinition;
047import org.opends.server.admin.IntegerPropertyDefinition;
048import org.opends.server.admin.ManagedObjectAlreadyExistsException;
049import org.opends.server.admin.ManagedObjectDefinition;
050import org.opends.server.admin.PropertyOption;
051import org.opends.server.admin.PropertyProvider;
052import org.opends.server.admin.server.ConfigurationChangeListener;
053import org.opends.server.admin.server.ServerManagedObject;
054import org.opends.server.admin.SizePropertyDefinition;
055import org.opends.server.admin.std.client.GlobalCfgClient;
056import org.opends.server.admin.std.client.IdentityMapperCfgClient;
057import org.opends.server.admin.std.client.PasswordPolicyCfgClient;
058import org.opends.server.admin.std.server.GlobalCfg;
059import org.opends.server.admin.std.server.IdentityMapperCfg;
060import org.opends.server.admin.std.server.PasswordPolicyCfg;
061import org.opends.server.admin.StringPropertyDefinition;
062import org.opends.server.admin.Tag;
063import org.opends.server.admin.TopCfgDefn;
064import org.opends.server.admin.UndefinedDefaultBehaviorProvider;
065import org.opends.server.types.DN;
066
067
068
069/**
070 * An interface for querying the Global Configuration managed object
071 * definition meta information.
072 * <p>
073 * The Global Configuration contains properties that affect the
074 * overall operation of the OpenDJ.
075 */
076public final class GlobalCfgDefn extends ManagedObjectDefinition<GlobalCfgClient, GlobalCfg> {
077
078  // The singleton configuration definition instance.
079  private static final GlobalCfgDefn INSTANCE = new GlobalCfgDefn();
080
081
082
083  /**
084   * Defines the set of permissable values for the "disabled-privilege" property.
085   * <p>
086   * Specifies the name of a privilege that should not be evaluated by
087   * the server.
088   * <p>
089   * If a privilege is disabled, then it is assumed that all clients
090   * (including unauthenticated clients) have that privilege.
091   */
092  public static enum DisabledPrivilege {
093
094    /**
095     * Allows the user to request that the server process backup
096     * tasks.
097     */
098    BACKEND_BACKUP("backend-backup"),
099
100
101
102    /**
103     * Allows the user to request that the server process restore
104     * tasks.
105     */
106    BACKEND_RESTORE("backend-restore"),
107
108
109
110    /**
111     * Allows the associated user to bypass access control checks
112     * performed by the server.
113     */
114    BYPASS_ACL("bypass-acl"),
115
116
117
118    /**
119     * Allows the associated user to bypass server lockdown mode.
120     */
121    BYPASS_LOCKDOWN("bypass-lockdown"),
122
123
124
125    /**
126     * Allows the user to cancel operations in progress on other
127     * client connections.
128     */
129    CANCEL_REQUEST("cancel-request"),
130
131
132
133    /**
134     * The privilege that provides the ability to perform read
135     * operations on the changelog
136     */
137    CHANGELOG_READ("changelog-read"),
138
139
140
141    /**
142     * Allows the associated user to read the server configuration.
143     */
144    CONFIG_READ("config-read"),
145
146
147
148    /**
149     * Allows the associated user to update the server configuration.
150     * The config-read privilege is also required.
151     */
152    CONFIG_WRITE("config-write"),
153
154
155
156    /**
157     * Allows the user to participate in data synchronization.
158     */
159    DATA_SYNC("data-sync"),
160
161
162
163    /**
164     * Allows the user to terminate other client connections.
165     */
166    DISCONNECT_CLIENT("disconnect-client"),
167
168
169
170    /**
171     * Allows the associated user to subscribe to receive JMX
172     * notifications.
173     */
174    JMX_NOTIFY("jmx-notify"),
175
176
177
178    /**
179     * Allows the associated user to perform JMX read operations.
180     */
181    JMX_READ("jmx-read"),
182
183
184
185    /**
186     * Allows the associated user to perform JMX write operations.
187     */
188    JMX_WRITE("jmx-write"),
189
190
191
192    /**
193     * Allows the user to request that the server process LDIF export
194     * tasks.
195     */
196    LDIF_EXPORT("ldif-export"),
197
198
199
200    /**
201     * Allows the user to request that the server process LDIF import
202     * tasks.
203     */
204    LDIF_IMPORT("ldif-import"),
205
206
207
208    /**
209     * Allows the associated user to modify the server's access
210     * control configuration.
211     */
212    MODIFY_ACL("modify-acl"),
213
214
215
216    /**
217     * Allows the user to reset user passwords.
218     */
219    PASSWORD_RESET("password-reset"),
220
221
222
223    /**
224     * Allows the user to make changes to the set of defined root
225     * privileges, as well as to grant and revoke privileges for users.
226     */
227    PRIVILEGE_CHANGE("privilege-change"),
228
229
230
231    /**
232     * Allows the user to use the proxied authorization control, or to
233     * perform a bind that specifies an alternate authorization
234     * identity.
235     */
236    PROXIED_AUTH("proxied-auth"),
237
238
239
240    /**
241     * Allows the user to place and bring the server of lockdown mode.
242     */
243    SERVER_LOCKDOWN("server-lockdown"),
244
245
246
247    /**
248     * Allows the user to request that the server perform an in-core
249     * restart.
250     */
251    SERVER_RESTART("server-restart"),
252
253
254
255    /**
256     * Allows the user to request that the server shut down.
257     */
258    SERVER_SHUTDOWN("server-shutdown"),
259
260
261
262    /**
263     * Allows the associated user to perform LDAP subentry write
264     * operations.
265     */
266    SUBENTRY_WRITE("subentry-write"),
267
268
269
270    /**
271     * Allows the user to request that the server process a search
272     * that cannot be optimized using server indexes.
273     */
274    UNINDEXED_SEARCH("unindexed-search"),
275
276
277
278    /**
279     * Allows the user to make changes to the server schema.
280     */
281    UPDATE_SCHEMA("update-schema");
282
283
284
285    // String representation of the value.
286    private final String name;
287
288
289
290    // Private constructor.
291    private DisabledPrivilege(String name) { this.name = name; }
292
293
294
295    /**
296     * {@inheritDoc}
297     */
298    public String toString() { return name; }
299
300  }
301
302
303
304  /**
305   * Defines the set of permissable values for the "etime-resolution" property.
306   * <p>
307   * Specifies the resolution to use for operation elapsed processing
308   * time (etime) measurements.
309   */
310  public static enum EtimeResolution {
311
312    /**
313     * Use millisecond resolution.
314     */
315    MILLISECONDS("milliseconds"),
316
317
318
319    /**
320     * Use nanosecond resolution.
321     */
322    NANOSECONDS("nanoseconds");
323
324
325
326    // String representation of the value.
327    private final String name;
328
329
330
331    // Private constructor.
332    private EtimeResolution(String name) { this.name = name; }
333
334
335
336    /**
337     * {@inheritDoc}
338     */
339    public String toString() { return name; }
340
341  }
342
343
344
345  /**
346   * Defines the set of permissable values for the "invalid-attribute-syntax-behavior" property.
347   * <p>
348   * Specifies how the directory server should handle operations
349   * whenever an attribute value violates the associated attribute
350   * syntax.
351   */
352  public static enum InvalidAttributeSyntaxBehavior {
353
354    /**
355     * The directory server silently accepts attribute values that are
356     * invalid according to their associated syntax. Matching
357     * operations targeting those values may not behave as expected.
358     */
359    ACCEPT("accept"),
360
361
362
363    /**
364     * The directory server rejects attribute values that are invalid
365     * according to their associated syntax.
366     */
367    REJECT("reject"),
368
369
370
371    /**
372     * The directory server accepts attribute values that are invalid
373     * according to their associated syntax, but also logs a warning
374     * message to the error log. Matching operations targeting those
375     * values may not behave as expected.
376     */
377    WARN("warn");
378
379
380
381    // String representation of the value.
382    private final String name;
383
384
385
386    // Private constructor.
387    private InvalidAttributeSyntaxBehavior(String name) { this.name = name; }
388
389
390
391    /**
392     * {@inheritDoc}
393     */
394    public String toString() { return name; }
395
396  }
397
398
399
400  /**
401   * Defines the set of permissable values for the "single-structural-objectclass-behavior" property.
402   * <p>
403   * Specifies how the directory server should handle operations an
404   * entry does not contain a structural object class or contains
405   * multiple structural classes.
406   */
407  public static enum SingleStructuralObjectclassBehavior {
408
409    /**
410     * The directory server silently accepts entries that do not
411     * contain exactly one structural object class. Certain schema
412     * features that depend on the entry's structural class may not
413     * behave as expected.
414     */
415    ACCEPT("accept"),
416
417
418
419    /**
420     * The directory server rejects entries that do not contain
421     * exactly one structural object class.
422     */
423    REJECT("reject"),
424
425
426
427    /**
428     * The directory server accepts entries that do not contain
429     * exactly one structural object class, but also logs a warning
430     * message to the error log. Certain schema features that depend on
431     * the entry's structural class may not behave as expected.
432     */
433    WARN("warn");
434
435
436
437    // String representation of the value.
438    private final String name;
439
440
441
442    // Private constructor.
443    private SingleStructuralObjectclassBehavior(String name) { this.name = name; }
444
445
446
447    /**
448     * {@inheritDoc}
449     */
450    public String toString() { return name; }
451
452  }
453
454
455
456  /**
457   * Defines the set of permissable values for the "writability-mode" property.
458   * <p>
459   * Specifies the kinds of write operations the directory server can
460   * process.
461   */
462  public static enum WritabilityMode {
463
464    /**
465     * The directory server rejects all write operations that are
466     * requested of it, regardless of their origin.
467     */
468    DISABLED("disabled"),
469
470
471
472    /**
473     * The directory server attempts to process all write operations
474     * that are requested of it, regardless of their origin.
475     */
476    ENABLED("enabled"),
477
478
479
480    /**
481     * The directory server attempts to process write operations
482     * requested as internal operations or through synchronization, but
483     * rejects any such operations requested from external clients.
484     */
485    INTERNAL_ONLY("internal-only");
486
487
488
489    // String representation of the value.
490    private final String name;
491
492
493
494    // Private constructor.
495    private WritabilityMode(String name) { this.name = name; }
496
497
498
499    /**
500     * {@inheritDoc}
501     */
502    public String toString() { return name; }
503
504  }
505
506
507
508  // The "add-missing-rdn-attributes" property definition.
509  private static final BooleanPropertyDefinition PD_ADD_MISSING_RDN_ATTRIBUTES;
510
511
512
513  // The "allow-attribute-name-exceptions" property definition.
514  private static final BooleanPropertyDefinition PD_ALLOW_ATTRIBUTE_NAME_EXCEPTIONS;
515
516
517
518  // The "allowed-task" property definition.
519  private static final StringPropertyDefinition PD_ALLOWED_TASK;
520
521
522
523  // The "bind-with-dn-requires-password" property definition.
524  private static final BooleanPropertyDefinition PD_BIND_WITH_DN_REQUIRES_PASSWORD;
525
526
527
528  // The "check-schema" property definition.
529  private static final BooleanPropertyDefinition PD_CHECK_SCHEMA;
530
531
532
533  // The "default-password-policy" property definition.
534  private static final AggregationPropertyDefinition<PasswordPolicyCfgClient, PasswordPolicyCfg> PD_DEFAULT_PASSWORD_POLICY;
535
536
537
538  // The "disabled-privilege" property definition.
539  private static final EnumPropertyDefinition<DisabledPrivilege> PD_DISABLED_PRIVILEGE;
540
541
542
543  // The "etime-resolution" property definition.
544  private static final EnumPropertyDefinition<EtimeResolution> PD_ETIME_RESOLUTION;
545
546
547
548  // The "idle-time-limit" property definition.
549  private static final DurationPropertyDefinition PD_IDLE_TIME_LIMIT;
550
551
552
553  // The "invalid-attribute-syntax-behavior" property definition.
554  private static final EnumPropertyDefinition<InvalidAttributeSyntaxBehavior> PD_INVALID_ATTRIBUTE_SYNTAX_BEHAVIOR;
555
556
557
558  // The "lookthrough-limit" property definition.
559  private static final IntegerPropertyDefinition PD_LOOKTHROUGH_LIMIT;
560
561
562
563  // The "max-allowed-client-connections" property definition.
564  private static final IntegerPropertyDefinition PD_MAX_ALLOWED_CLIENT_CONNECTIONS;
565
566
567
568  // The "max-internal-buffer-size" property definition.
569  private static final SizePropertyDefinition PD_MAX_INTERNAL_BUFFER_SIZE;
570
571
572
573  // The "max-psearches" property definition.
574  private static final IntegerPropertyDefinition PD_MAX_PSEARCHES;
575
576
577
578  // The "notify-abandoned-operations" property definition.
579  private static final BooleanPropertyDefinition PD_NOTIFY_ABANDONED_OPERATIONS;
580
581
582
583  // The "proxied-authorization-identity-mapper" property definition.
584  private static final AggregationPropertyDefinition<IdentityMapperCfgClient, IdentityMapperCfg> PD_PROXIED_AUTHORIZATION_IDENTITY_MAPPER;
585
586
587
588  // The "reject-unauthenticated-requests" property definition.
589  private static final BooleanPropertyDefinition PD_REJECT_UNAUTHENTICATED_REQUESTS;
590
591
592
593  // The "return-bind-error-messages" property definition.
594  private static final BooleanPropertyDefinition PD_RETURN_BIND_ERROR_MESSAGES;
595
596
597
598  // The "save-config-on-successful-startup" property definition.
599  private static final BooleanPropertyDefinition PD_SAVE_CONFIG_ON_SUCCESSFUL_STARTUP;
600
601
602
603  // The "server-error-result-code" property definition.
604  private static final IntegerPropertyDefinition PD_SERVER_ERROR_RESULT_CODE;
605
606
607
608  // The "single-structural-objectclass-behavior" property definition.
609  private static final EnumPropertyDefinition<SingleStructuralObjectclassBehavior> PD_SINGLE_STRUCTURAL_OBJECTCLASS_BEHAVIOR;
610
611
612
613  // The "size-limit" property definition.
614  private static final IntegerPropertyDefinition PD_SIZE_LIMIT;
615
616
617
618  // The "smtp-server" property definition.
619  private static final StringPropertyDefinition PD_SMTP_SERVER;
620
621
622
623  // The "time-limit" property definition.
624  private static final DurationPropertyDefinition PD_TIME_LIMIT;
625
626
627
628  // The "trust-transaction-ids" property definition.
629  private static final BooleanPropertyDefinition PD_TRUST_TRANSACTION_IDS;
630
631
632
633  // The "writability-mode" property definition.
634  private static final EnumPropertyDefinition<WritabilityMode> PD_WRITABILITY_MODE;
635
636
637
638  // Build the "add-missing-rdn-attributes" property definition.
639  static {
640      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "add-missing-rdn-attributes");
641      builder.setOption(PropertyOption.ADVANCED);
642      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "add-missing-rdn-attributes"));
643      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true");
644      builder.setDefaultBehaviorProvider(provider);
645      PD_ADD_MISSING_RDN_ATTRIBUTES = builder.getInstance();
646      INSTANCE.registerPropertyDefinition(PD_ADD_MISSING_RDN_ATTRIBUTES);
647  }
648
649
650
651  // Build the "allow-attribute-name-exceptions" property definition.
652  static {
653      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "allow-attribute-name-exceptions");
654      builder.setOption(PropertyOption.ADVANCED);
655      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "allow-attribute-name-exceptions"));
656      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
657      builder.setDefaultBehaviorProvider(provider);
658      PD_ALLOW_ATTRIBUTE_NAME_EXCEPTIONS = builder.getInstance();
659      INSTANCE.registerPropertyDefinition(PD_ALLOW_ATTRIBUTE_NAME_EXCEPTIONS);
660  }
661
662
663
664  // Build the "allowed-task" property definition.
665  static {
666      StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "allowed-task");
667      builder.setOption(PropertyOption.MULTI_VALUED);
668      builder.setOption(PropertyOption.ADVANCED);
669      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "allowed-task"));
670      builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<String>(INSTANCE, "allowed-task"));
671      PD_ALLOWED_TASK = builder.getInstance();
672      INSTANCE.registerPropertyDefinition(PD_ALLOWED_TASK);
673  }
674
675
676
677  // Build the "bind-with-dn-requires-password" property definition.
678  static {
679      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "bind-with-dn-requires-password");
680      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "bind-with-dn-requires-password"));
681      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true");
682      builder.setDefaultBehaviorProvider(provider);
683      PD_BIND_WITH_DN_REQUIRES_PASSWORD = builder.getInstance();
684      INSTANCE.registerPropertyDefinition(PD_BIND_WITH_DN_REQUIRES_PASSWORD);
685  }
686
687
688
689  // Build the "check-schema" property definition.
690  static {
691      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "check-schema");
692      builder.setOption(PropertyOption.ADVANCED);
693      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "check-schema"));
694      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true");
695      builder.setDefaultBehaviorProvider(provider);
696      PD_CHECK_SCHEMA = builder.getInstance();
697      INSTANCE.registerPropertyDefinition(PD_CHECK_SCHEMA);
698  }
699
700
701
702  // Build the "default-password-policy" property definition.
703  static {
704      AggregationPropertyDefinition.Builder<PasswordPolicyCfgClient, PasswordPolicyCfg> builder = AggregationPropertyDefinition.createBuilder(INSTANCE, "default-password-policy");
705      builder.setOption(PropertyOption.MANDATORY);
706      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "default-password-policy"));
707      builder.setDefaultBehaviorProvider(new UndefinedDefaultBehaviorProvider<String>());
708      builder.setParentPath("/");
709      builder.setRelationDefinition("password-policy");
710      PD_DEFAULT_PASSWORD_POLICY = builder.getInstance();
711      INSTANCE.registerPropertyDefinition(PD_DEFAULT_PASSWORD_POLICY);
712      INSTANCE.registerConstraint(PD_DEFAULT_PASSWORD_POLICY.getSourceConstraint());
713  }
714
715
716
717  // Build the "disabled-privilege" property definition.
718  static {
719      EnumPropertyDefinition.Builder<DisabledPrivilege> builder = EnumPropertyDefinition.createBuilder(INSTANCE, "disabled-privilege");
720      builder.setOption(PropertyOption.MULTI_VALUED);
721      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "disabled-privilege"));
722      builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<DisabledPrivilege>(INSTANCE, "disabled-privilege"));
723      builder.setEnumClass(DisabledPrivilege.class);
724      PD_DISABLED_PRIVILEGE = builder.getInstance();
725      INSTANCE.registerPropertyDefinition(PD_DISABLED_PRIVILEGE);
726  }
727
728
729
730  // Build the "etime-resolution" property definition.
731  static {
732      EnumPropertyDefinition.Builder<EtimeResolution> builder = EnumPropertyDefinition.createBuilder(INSTANCE, "etime-resolution");
733      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "etime-resolution"));
734      DefaultBehaviorProvider<EtimeResolution> provider = new DefinedDefaultBehaviorProvider<EtimeResolution>("milliseconds");
735      builder.setDefaultBehaviorProvider(provider);
736      builder.setEnumClass(EtimeResolution.class);
737      PD_ETIME_RESOLUTION = builder.getInstance();
738      INSTANCE.registerPropertyDefinition(PD_ETIME_RESOLUTION);
739  }
740
741
742
743  // Build the "idle-time-limit" property definition.
744  static {
745      DurationPropertyDefinition.Builder builder = DurationPropertyDefinition.createBuilder(INSTANCE, "idle-time-limit");
746      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "idle-time-limit"));
747      DefaultBehaviorProvider<Long> provider = new DefinedDefaultBehaviorProvider<Long>("0 seconds");
748      builder.setDefaultBehaviorProvider(provider);
749      builder.setBaseUnit("ms");
750      builder.setLowerLimit("0");
751      PD_IDLE_TIME_LIMIT = builder.getInstance();
752      INSTANCE.registerPropertyDefinition(PD_IDLE_TIME_LIMIT);
753  }
754
755
756
757  // Build the "invalid-attribute-syntax-behavior" property definition.
758  static {
759      EnumPropertyDefinition.Builder<InvalidAttributeSyntaxBehavior> builder = EnumPropertyDefinition.createBuilder(INSTANCE, "invalid-attribute-syntax-behavior");
760      builder.setOption(PropertyOption.ADVANCED);
761      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "invalid-attribute-syntax-behavior"));
762      DefaultBehaviorProvider<InvalidAttributeSyntaxBehavior> provider = new DefinedDefaultBehaviorProvider<InvalidAttributeSyntaxBehavior>("reject");
763      builder.setDefaultBehaviorProvider(provider);
764      builder.setEnumClass(InvalidAttributeSyntaxBehavior.class);
765      PD_INVALID_ATTRIBUTE_SYNTAX_BEHAVIOR = builder.getInstance();
766      INSTANCE.registerPropertyDefinition(PD_INVALID_ATTRIBUTE_SYNTAX_BEHAVIOR);
767  }
768
769
770
771  // Build the "lookthrough-limit" property definition.
772  static {
773      IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "lookthrough-limit");
774      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "lookthrough-limit"));
775      DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("5000");
776      builder.setDefaultBehaviorProvider(provider);
777      builder.setLowerLimit(0);
778      PD_LOOKTHROUGH_LIMIT = builder.getInstance();
779      INSTANCE.registerPropertyDefinition(PD_LOOKTHROUGH_LIMIT);
780  }
781
782
783
784  // Build the "max-allowed-client-connections" property definition.
785  static {
786      IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "max-allowed-client-connections");
787      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "max-allowed-client-connections"));
788      DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("0");
789      builder.setDefaultBehaviorProvider(provider);
790      builder.setLowerLimit(0);
791      PD_MAX_ALLOWED_CLIENT_CONNECTIONS = builder.getInstance();
792      INSTANCE.registerPropertyDefinition(PD_MAX_ALLOWED_CLIENT_CONNECTIONS);
793  }
794
795
796
797  // Build the "max-internal-buffer-size" property definition.
798  static {
799      SizePropertyDefinition.Builder builder = SizePropertyDefinition.createBuilder(INSTANCE, "max-internal-buffer-size");
800      builder.setOption(PropertyOption.ADVANCED);
801      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "max-internal-buffer-size"));
802      DefaultBehaviorProvider<Long> provider = new DefinedDefaultBehaviorProvider<Long>("32 KB");
803      builder.setDefaultBehaviorProvider(provider);
804      builder.setUpperLimit("1 GB");
805      builder.setLowerLimit("512 B");
806      PD_MAX_INTERNAL_BUFFER_SIZE = builder.getInstance();
807      INSTANCE.registerPropertyDefinition(PD_MAX_INTERNAL_BUFFER_SIZE);
808  }
809
810
811
812  // Build the "max-psearches" property definition.
813  static {
814      IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "max-psearches");
815      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "max-psearches"));
816      DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("-1");
817      builder.setDefaultBehaviorProvider(provider);
818      builder.setAllowUnlimited(true);
819      builder.setLowerLimit(0);
820      PD_MAX_PSEARCHES = builder.getInstance();
821      INSTANCE.registerPropertyDefinition(PD_MAX_PSEARCHES);
822  }
823
824
825
826  // Build the "notify-abandoned-operations" property definition.
827  static {
828      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "notify-abandoned-operations");
829      builder.setOption(PropertyOption.ADVANCED);
830      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "notify-abandoned-operations"));
831      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
832      builder.setDefaultBehaviorProvider(provider);
833      PD_NOTIFY_ABANDONED_OPERATIONS = builder.getInstance();
834      INSTANCE.registerPropertyDefinition(PD_NOTIFY_ABANDONED_OPERATIONS);
835  }
836
837
838
839  // Build the "proxied-authorization-identity-mapper" property definition.
840  static {
841      AggregationPropertyDefinition.Builder<IdentityMapperCfgClient, IdentityMapperCfg> builder = AggregationPropertyDefinition.createBuilder(INSTANCE, "proxied-authorization-identity-mapper");
842      builder.setOption(PropertyOption.MANDATORY);
843      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "proxied-authorization-identity-mapper"));
844      builder.setDefaultBehaviorProvider(new UndefinedDefaultBehaviorProvider<String>());
845      builder.setParentPath("/");
846      builder.setRelationDefinition("identity-mapper");
847      builder.setTargetIsEnabledCondition(Conditions.contains("enabled", "true"));
848      PD_PROXIED_AUTHORIZATION_IDENTITY_MAPPER = builder.getInstance();
849      INSTANCE.registerPropertyDefinition(PD_PROXIED_AUTHORIZATION_IDENTITY_MAPPER);
850      INSTANCE.registerConstraint(PD_PROXIED_AUTHORIZATION_IDENTITY_MAPPER.getSourceConstraint());
851  }
852
853
854
855  // Build the "reject-unauthenticated-requests" property definition.
856  static {
857      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "reject-unauthenticated-requests");
858      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "reject-unauthenticated-requests"));
859      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
860      builder.setDefaultBehaviorProvider(provider);
861      PD_REJECT_UNAUTHENTICATED_REQUESTS = builder.getInstance();
862      INSTANCE.registerPropertyDefinition(PD_REJECT_UNAUTHENTICATED_REQUESTS);
863  }
864
865
866
867  // Build the "return-bind-error-messages" property definition.
868  static {
869      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "return-bind-error-messages");
870      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "return-bind-error-messages"));
871      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
872      builder.setDefaultBehaviorProvider(provider);
873      PD_RETURN_BIND_ERROR_MESSAGES = builder.getInstance();
874      INSTANCE.registerPropertyDefinition(PD_RETURN_BIND_ERROR_MESSAGES);
875  }
876
877
878
879  // Build the "save-config-on-successful-startup" property definition.
880  static {
881      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "save-config-on-successful-startup");
882      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "save-config-on-successful-startup"));
883      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true");
884      builder.setDefaultBehaviorProvider(provider);
885      PD_SAVE_CONFIG_ON_SUCCESSFUL_STARTUP = builder.getInstance();
886      INSTANCE.registerPropertyDefinition(PD_SAVE_CONFIG_ON_SUCCESSFUL_STARTUP);
887  }
888
889
890
891  // Build the "server-error-result-code" property definition.
892  static {
893      IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "server-error-result-code");
894      builder.setOption(PropertyOption.ADVANCED);
895      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "server-error-result-code"));
896      DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("80");
897      builder.setDefaultBehaviorProvider(provider);
898      builder.setLowerLimit(0);
899      PD_SERVER_ERROR_RESULT_CODE = builder.getInstance();
900      INSTANCE.registerPropertyDefinition(PD_SERVER_ERROR_RESULT_CODE);
901  }
902
903
904
905  // Build the "single-structural-objectclass-behavior" property definition.
906  static {
907      EnumPropertyDefinition.Builder<SingleStructuralObjectclassBehavior> builder = EnumPropertyDefinition.createBuilder(INSTANCE, "single-structural-objectclass-behavior");
908      builder.setOption(PropertyOption.ADVANCED);
909      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "single-structural-objectclass-behavior"));
910      DefaultBehaviorProvider<SingleStructuralObjectclassBehavior> provider = new DefinedDefaultBehaviorProvider<SingleStructuralObjectclassBehavior>("reject");
911      builder.setDefaultBehaviorProvider(provider);
912      builder.setEnumClass(SingleStructuralObjectclassBehavior.class);
913      PD_SINGLE_STRUCTURAL_OBJECTCLASS_BEHAVIOR = builder.getInstance();
914      INSTANCE.registerPropertyDefinition(PD_SINGLE_STRUCTURAL_OBJECTCLASS_BEHAVIOR);
915  }
916
917
918
919  // Build the "size-limit" property definition.
920  static {
921      IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "size-limit");
922      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "size-limit"));
923      DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("1000");
924      builder.setDefaultBehaviorProvider(provider);
925      builder.setLowerLimit(0);
926      PD_SIZE_LIMIT = builder.getInstance();
927      INSTANCE.registerPropertyDefinition(PD_SIZE_LIMIT);
928  }
929
930
931
932  // Build the "smtp-server" property definition.
933  static {
934      StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "smtp-server");
935      builder.setOption(PropertyOption.MULTI_VALUED);
936      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "smtp-server"));
937      builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<String>(INSTANCE, "smtp-server"));
938      builder.setPattern("^.+(:[0-9]+)?$", "HOST[:PORT]");
939      PD_SMTP_SERVER = builder.getInstance();
940      INSTANCE.registerPropertyDefinition(PD_SMTP_SERVER);
941  }
942
943
944
945  // Build the "time-limit" property definition.
946  static {
947      DurationPropertyDefinition.Builder builder = DurationPropertyDefinition.createBuilder(INSTANCE, "time-limit");
948      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "time-limit"));
949      DefaultBehaviorProvider<Long> provider = new DefinedDefaultBehaviorProvider<Long>("60 seconds");
950      builder.setDefaultBehaviorProvider(provider);
951      builder.setBaseUnit("s");
952      builder.setLowerLimit("0");
953      PD_TIME_LIMIT = builder.getInstance();
954      INSTANCE.registerPropertyDefinition(PD_TIME_LIMIT);
955  }
956
957
958
959  // Build the "trust-transaction-ids" property definition.
960  static {
961      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "trust-transaction-ids");
962      builder.setOption(PropertyOption.ADVANCED);
963      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "trust-transaction-ids"));
964      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
965      builder.setDefaultBehaviorProvider(provider);
966      PD_TRUST_TRANSACTION_IDS = builder.getInstance();
967      INSTANCE.registerPropertyDefinition(PD_TRUST_TRANSACTION_IDS);
968  }
969
970
971
972  // Build the "writability-mode" property definition.
973  static {
974      EnumPropertyDefinition.Builder<WritabilityMode> builder = EnumPropertyDefinition.createBuilder(INSTANCE, "writability-mode");
975      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "writability-mode"));
976      DefaultBehaviorProvider<WritabilityMode> provider = new DefinedDefaultBehaviorProvider<WritabilityMode>("enabled");
977      builder.setDefaultBehaviorProvider(provider);
978      builder.setEnumClass(WritabilityMode.class);
979      PD_WRITABILITY_MODE = builder.getInstance();
980      INSTANCE.registerPropertyDefinition(PD_WRITABILITY_MODE);
981  }
982
983
984
985  // Register the tags associated with this managed object definition.
986  static {
987    INSTANCE.registerTag(Tag.valueOf("core-server"));
988  }
989
990
991
992  /**
993   * Get the Global Configuration configuration definition singleton.
994   *
995   * @return Returns the Global Configuration configuration definition
996   *         singleton.
997   */
998  public static GlobalCfgDefn getInstance() {
999    return INSTANCE;
1000  }
1001
1002
1003
1004  /**
1005   * Private constructor.
1006   */
1007  private GlobalCfgDefn() {
1008    super("global", TopCfgDefn.getInstance());
1009  }
1010
1011
1012
1013  /**
1014   * {@inheritDoc}
1015   */
1016  public GlobalCfgClient createClientConfiguration(
1017      ManagedObject<? extends GlobalCfgClient> impl) {
1018    return new GlobalCfgClientImpl(impl);
1019  }
1020
1021
1022
1023  /**
1024   * {@inheritDoc}
1025   */
1026  public GlobalCfg createServerConfiguration(
1027      ServerManagedObject<? extends GlobalCfg> impl) {
1028    return new GlobalCfgServerImpl(impl);
1029  }
1030
1031
1032
1033  /**
1034   * {@inheritDoc}
1035   */
1036  public Class<GlobalCfg> getServerConfigurationClass() {
1037    return GlobalCfg.class;
1038  }
1039
1040
1041
1042  /**
1043   * Get the "add-missing-rdn-attributes" property definition.
1044   * <p>
1045   * Indicates whether the directory server should automatically add
1046   * any attribute values contained in the entry's RDN into that entry
1047   * when processing an add request.
1048   *
1049   * @return Returns the "add-missing-rdn-attributes" property definition.
1050   */
1051  public BooleanPropertyDefinition getAddMissingRDNAttributesPropertyDefinition() {
1052    return PD_ADD_MISSING_RDN_ATTRIBUTES;
1053  }
1054
1055
1056
1057  /**
1058   * Get the "allow-attribute-name-exceptions" property definition.
1059   * <p>
1060   * Indicates whether the directory server should allow underscores
1061   * in attribute names and allow attribute names to begin with numeric
1062   * digits (both of which are violations of the LDAP standards).
1063   *
1064   * @return Returns the "allow-attribute-name-exceptions" property definition.
1065   */
1066  public BooleanPropertyDefinition getAllowAttributeNameExceptionsPropertyDefinition() {
1067    return PD_ALLOW_ATTRIBUTE_NAME_EXCEPTIONS;
1068  }
1069
1070
1071
1072  /**
1073   * Get the "allowed-task" property definition.
1074   * <p>
1075   * Specifies the fully-qualified name of a Java class that may be
1076   * invoked in the server.
1077   * <p>
1078   * Any attempt to invoke a task not included in the list of allowed
1079   * tasks is rejected.
1080   *
1081   * @return Returns the "allowed-task" property definition.
1082   */
1083  public StringPropertyDefinition getAllowedTaskPropertyDefinition() {
1084    return PD_ALLOWED_TASK;
1085  }
1086
1087
1088
1089  /**
1090   * Get the "bind-with-dn-requires-password" property definition.
1091   * <p>
1092   * Indicates whether the directory server should reject any simple
1093   * bind request that contains a DN but no password.
1094   * <p>
1095   * Although such bind requests are technically allowed by the LDAPv3
1096   * specification (and should be treated as anonymous simple
1097   * authentication), they may introduce security problems in
1098   * applications that do not verify that the client actually provided
1099   * a password.
1100   *
1101   * @return Returns the "bind-with-dn-requires-password" property definition.
1102   */
1103  public BooleanPropertyDefinition getBindWithDNRequiresPasswordPropertyDefinition() {
1104    return PD_BIND_WITH_DN_REQUIRES_PASSWORD;
1105  }
1106
1107
1108
1109  /**
1110   * Get the "check-schema" property definition.
1111   * <p>
1112   * Indicates whether schema enforcement is active.
1113   * <p>
1114   * When schema enforcement is activated, the directory server
1115   * ensures that all operations result in entries are valid according
1116   * to the defined server schema. It is strongly recommended that this
1117   * option be left enabled to prevent the inadvertent addition of
1118   * invalid data into the server.
1119   *
1120   * @return Returns the "check-schema" property definition.
1121   */
1122  public BooleanPropertyDefinition getCheckSchemaPropertyDefinition() {
1123    return PD_CHECK_SCHEMA;
1124  }
1125
1126
1127
1128  /**
1129   * Get the "default-password-policy" property definition.
1130   * <p>
1131   * Specifies the name of the password policy that is in effect for
1132   * users whose entries do not specify an alternate password policy
1133   * (either via a real or virtual attribute).
1134   * <p>
1135   * In addition, the default password policy will be used for
1136   * providing default parameters for sub-entry based password policies
1137   * when not provided or supported by the sub-entry itself. This
1138   * property must reference a password policy and no other type of
1139   * authentication policy.
1140   *
1141   * @return Returns the "default-password-policy" property definition.
1142   */
1143  public AggregationPropertyDefinition<PasswordPolicyCfgClient, PasswordPolicyCfg> getDefaultPasswordPolicyPropertyDefinition() {
1144    return PD_DEFAULT_PASSWORD_POLICY;
1145  }
1146
1147
1148
1149  /**
1150   * Get the "disabled-privilege" property definition.
1151   * <p>
1152   * Specifies the name of a privilege that should not be evaluated by
1153   * the server.
1154   * <p>
1155   * If a privilege is disabled, then it is assumed that all clients
1156   * (including unauthenticated clients) have that privilege.
1157   *
1158   * @return Returns the "disabled-privilege" property definition.
1159   */
1160  public EnumPropertyDefinition<DisabledPrivilege> getDisabledPrivilegePropertyDefinition() {
1161    return PD_DISABLED_PRIVILEGE;
1162  }
1163
1164
1165
1166  /**
1167   * Get the "etime-resolution" property definition.
1168   * <p>
1169   * Specifies the resolution to use for operation elapsed processing
1170   * time (etime) measurements.
1171   *
1172   * @return Returns the "etime-resolution" property definition.
1173   */
1174  public EnumPropertyDefinition<EtimeResolution> getEtimeResolutionPropertyDefinition() {
1175    return PD_ETIME_RESOLUTION;
1176  }
1177
1178
1179
1180  /**
1181   * Get the "idle-time-limit" property definition.
1182   * <p>
1183   * Specifies the maximum length of time that a client connection may
1184   * remain established since its last completed operation.
1185   * <p>
1186   * A value of "0 seconds" indicates that no idle time limit is
1187   * enforced.
1188   *
1189   * @return Returns the "idle-time-limit" property definition.
1190   */
1191  public DurationPropertyDefinition getIdleTimeLimitPropertyDefinition() {
1192    return PD_IDLE_TIME_LIMIT;
1193  }
1194
1195
1196
1197  /**
1198   * Get the "invalid-attribute-syntax-behavior" property definition.
1199   * <p>
1200   * Specifies how the directory server should handle operations
1201   * whenever an attribute value violates the associated attribute
1202   * syntax.
1203   *
1204   * @return Returns the "invalid-attribute-syntax-behavior" property definition.
1205   */
1206  public EnumPropertyDefinition<InvalidAttributeSyntaxBehavior> getInvalidAttributeSyntaxBehaviorPropertyDefinition() {
1207    return PD_INVALID_ATTRIBUTE_SYNTAX_BEHAVIOR;
1208  }
1209
1210
1211
1212  /**
1213   * Get the "lookthrough-limit" property definition.
1214   * <p>
1215   * Specifies the maximum number of entries that the directory server
1216   * should "look through" in the course of processing a search
1217   * request.
1218   * <p>
1219   * This includes any entry that the server must examine in the
1220   * course of processing the request, regardless of whether it
1221   * actually matches the search criteria. A value of 0 indicates that
1222   * no lookthrough limit is enforced. Note that this is the default
1223   * server-wide limit, but it may be overridden on a per-user basis
1224   * using the ds-rlim-lookthrough-limit operational attribute.
1225   *
1226   * @return Returns the "lookthrough-limit" property definition.
1227   */
1228  public IntegerPropertyDefinition getLookthroughLimitPropertyDefinition() {
1229    return PD_LOOKTHROUGH_LIMIT;
1230  }
1231
1232
1233
1234  /**
1235   * Get the "max-allowed-client-connections" property definition.
1236   * <p>
1237   * Specifies the maximum number of client connections that may be
1238   * established at any given time
1239   * <p>
1240   * A value of 0 indicates that unlimited client connection is
1241   * allowed.
1242   *
1243   * @return Returns the "max-allowed-client-connections" property definition.
1244   */
1245  public IntegerPropertyDefinition getMaxAllowedClientConnectionsPropertyDefinition() {
1246    return PD_MAX_ALLOWED_CLIENT_CONNECTIONS;
1247  }
1248
1249
1250
1251  /**
1252   * Get the "max-internal-buffer-size" property definition.
1253   * <p>
1254   * The threshold capacity beyond which internal cached buffers used
1255   * for encoding and decoding entries and protocol messages will be
1256   * trimmed after use.
1257   * <p>
1258   * Individual buffers may grow very large when encoding and decoding
1259   * large entries and protocol messages and should be reduced in size
1260   * when they are no longer needed. This setting specifies the
1261   * threshold at which a buffer is determined to have grown too big
1262   * and should be trimmed down after use.
1263   *
1264   * @return Returns the "max-internal-buffer-size" property definition.
1265   */
1266  public SizePropertyDefinition getMaxInternalBufferSizePropertyDefinition() {
1267    return PD_MAX_INTERNAL_BUFFER_SIZE;
1268  }
1269
1270
1271
1272  /**
1273   * Get the "max-psearches" property definition.
1274   * <p>
1275   * Defines the maximum number of concurrent persistent searches that
1276   * can be performed on directory server
1277   * <p>
1278   * The persistent search mechanism provides an active channel
1279   * through which entries that change, and information about the
1280   * changes that occur, can be communicated. Because each persistent
1281   * search operation consumes resources, limiting the number of
1282   * simultaneous persistent searches keeps the performance impact
1283   * minimal. A value of -1 indicates that there is no limit on the
1284   * persistent searches.
1285   *
1286   * @return Returns the "max-psearches" property definition.
1287   */
1288  public IntegerPropertyDefinition getMaxPsearchesPropertyDefinition() {
1289    return PD_MAX_PSEARCHES;
1290  }
1291
1292
1293
1294  /**
1295   * Get the "notify-abandoned-operations" property definition.
1296   * <p>
1297   * Indicates whether the directory server should send a response to
1298   * any operation that is interrupted via an abandon request.
1299   * <p>
1300   * The LDAP specification states that abandoned operations should
1301   * not receive any response, but this may cause problems with client
1302   * applications that always expect to receive a response to each
1303   * request.
1304   *
1305   * @return Returns the "notify-abandoned-operations" property definition.
1306   */
1307  public BooleanPropertyDefinition getNotifyAbandonedOperationsPropertyDefinition() {
1308    return PD_NOTIFY_ABANDONED_OPERATIONS;
1309  }
1310
1311
1312
1313  /**
1314   * Get the "proxied-authorization-identity-mapper" property definition.
1315   * <p>
1316   * Specifies the name of the identity mapper to map authorization ID
1317   * values (using the "u:" form) provided in the proxied authorization
1318   * control to the corresponding user entry.
1319   *
1320   * @return Returns the "proxied-authorization-identity-mapper" property definition.
1321   */
1322  public AggregationPropertyDefinition<IdentityMapperCfgClient, IdentityMapperCfg> getProxiedAuthorizationIdentityMapperPropertyDefinition() {
1323    return PD_PROXIED_AUTHORIZATION_IDENTITY_MAPPER;
1324  }
1325
1326
1327
1328  /**
1329   * Get the "reject-unauthenticated-requests" property definition.
1330   * <p>
1331   * Indicates whether the directory server should reject any request
1332   * (other than bind or StartTLS requests) received from a client that
1333   * has not yet been authenticated, whose last authentication attempt
1334   * was unsuccessful, or whose last authentication attempt used
1335   * anonymous authentication.
1336   *
1337   * @return Returns the "reject-unauthenticated-requests" property definition.
1338   */
1339  public BooleanPropertyDefinition getRejectUnauthenticatedRequestsPropertyDefinition() {
1340    return PD_REJECT_UNAUTHENTICATED_REQUESTS;
1341  }
1342
1343
1344
1345  /**
1346   * Get the "return-bind-error-messages" property definition.
1347   * <p>
1348   * Indicates whether responses for failed bind operations should
1349   * include a message string providing the reason for the
1350   * authentication failure.
1351   * <p>
1352   * Note that these messages may include information that could
1353   * potentially be used by an attacker. If this option is disabled,
1354   * then these messages appears only in the server's access log.
1355   *
1356   * @return Returns the "return-bind-error-messages" property definition.
1357   */
1358  public BooleanPropertyDefinition getReturnBindErrorMessagesPropertyDefinition() {
1359    return PD_RETURN_BIND_ERROR_MESSAGES;
1360  }
1361
1362
1363
1364  /**
1365   * Get the "save-config-on-successful-startup" property definition.
1366   * <p>
1367   * Indicates whether the directory server should save a copy of its
1368   * configuration whenever the startup process completes successfully.
1369   * <p>
1370   * This ensures that the server provides a "last known good"
1371   * configuration, which can be used as a reference (or copied into
1372   * the active config) if the server fails to start with the current
1373   * "active" configuration.
1374   *
1375   * @return Returns the "save-config-on-successful-startup" property definition.
1376   */
1377  public BooleanPropertyDefinition getSaveConfigOnSuccessfulStartupPropertyDefinition() {
1378    return PD_SAVE_CONFIG_ON_SUCCESSFUL_STARTUP;
1379  }
1380
1381
1382
1383  /**
1384   * Get the "server-error-result-code" property definition.
1385   * <p>
1386   * Specifies the numeric value of the result code when request
1387   * processing fails due to an internal server error.
1388   *
1389   * @return Returns the "server-error-result-code" property definition.
1390   */
1391  public IntegerPropertyDefinition getServerErrorResultCodePropertyDefinition() {
1392    return PD_SERVER_ERROR_RESULT_CODE;
1393  }
1394
1395
1396
1397  /**
1398   * Get the "single-structural-objectclass-behavior" property definition.
1399   * <p>
1400   * Specifies how the directory server should handle operations an
1401   * entry does not contain a structural object class or contains
1402   * multiple structural classes.
1403   *
1404   * @return Returns the "single-structural-objectclass-behavior" property definition.
1405   */
1406  public EnumPropertyDefinition<SingleStructuralObjectclassBehavior> getSingleStructuralObjectclassBehaviorPropertyDefinition() {
1407    return PD_SINGLE_STRUCTURAL_OBJECTCLASS_BEHAVIOR;
1408  }
1409
1410
1411
1412  /**
1413   * Get the "size-limit" property definition.
1414   * <p>
1415   * Specifies the maximum number of entries that can be returned to
1416   * the client during a single search operation.
1417   * <p>
1418   * A value of 0 indicates that no size limit is enforced. Note that
1419   * this is the default server-wide limit, but it may be overridden on
1420   * a per-user basis using the ds-rlim-size-limit operational
1421   * attribute.
1422   *
1423   * @return Returns the "size-limit" property definition.
1424   */
1425  public IntegerPropertyDefinition getSizeLimitPropertyDefinition() {
1426    return PD_SIZE_LIMIT;
1427  }
1428
1429
1430
1431  /**
1432   * Get the "smtp-server" property definition.
1433   * <p>
1434   * Specifies the address (and optional port number) for a mail
1435   * server that can be used to send email messages via SMTP.
1436   * <p>
1437   * It may be an IP address or resolvable hostname, optionally
1438   * followed by a colon and a port number.
1439   *
1440   * @return Returns the "smtp-server" property definition.
1441   */
1442  public StringPropertyDefinition getSMTPServerPropertyDefinition() {
1443    return PD_SMTP_SERVER;
1444  }
1445
1446
1447
1448  /**
1449   * Get the "time-limit" property definition.
1450   * <p>
1451   * Specifies the maximum length of time that should be spent
1452   * processing a single search operation.
1453   * <p>
1454   * A value of 0 seconds indicates that no time limit is enforced.
1455   * Note that this is the default server-wide time limit, but it may
1456   * be overridden on a per-user basis using the ds-rlim-time-limit
1457   * operational attribute.
1458   *
1459   * @return Returns the "time-limit" property definition.
1460   */
1461  public DurationPropertyDefinition getTimeLimitPropertyDefinition() {
1462    return PD_TIME_LIMIT;
1463  }
1464
1465
1466
1467  /**
1468   * Get the "trust-transaction-ids" property definition.
1469   * <p>
1470   * Indicates whether the directory server should trust the
1471   * transaction ids that may be received from requests, either through
1472   * a LDAP control or through a HTTP header.
1473   *
1474   * @return Returns the "trust-transaction-ids" property definition.
1475   */
1476  public BooleanPropertyDefinition getTrustTransactionIdsPropertyDefinition() {
1477    return PD_TRUST_TRANSACTION_IDS;
1478  }
1479
1480
1481
1482  /**
1483   * Get the "writability-mode" property definition.
1484   * <p>
1485   * Specifies the kinds of write operations the directory server can
1486   * process.
1487   *
1488   * @return Returns the "writability-mode" property definition.
1489   */
1490  public EnumPropertyDefinition<WritabilityMode> getWritabilityModePropertyDefinition() {
1491    return PD_WRITABILITY_MODE;
1492  }
1493
1494
1495
1496  /**
1497   * Managed object client implementation.
1498   */
1499  private static class GlobalCfgClientImpl implements
1500    GlobalCfgClient {
1501
1502    // Private implementation.
1503    private ManagedObject<? extends GlobalCfgClient> impl;
1504
1505
1506
1507    // Private constructor.
1508    private GlobalCfgClientImpl(
1509        ManagedObject<? extends GlobalCfgClient> impl) {
1510      this.impl = impl;
1511    }
1512
1513
1514
1515    /**
1516     * {@inheritDoc}
1517     */
1518    public boolean isAddMissingRDNAttributes() {
1519      return impl.getPropertyValue(INSTANCE.getAddMissingRDNAttributesPropertyDefinition());
1520    }
1521
1522
1523
1524    /**
1525     * {@inheritDoc}
1526     */
1527    public void setAddMissingRDNAttributes(Boolean value) {
1528      impl.setPropertyValue(INSTANCE.getAddMissingRDNAttributesPropertyDefinition(), value);
1529    }
1530
1531
1532
1533    /**
1534     * {@inheritDoc}
1535     */
1536    public boolean isAllowAttributeNameExceptions() {
1537      return impl.getPropertyValue(INSTANCE.getAllowAttributeNameExceptionsPropertyDefinition());
1538    }
1539
1540
1541
1542    /**
1543     * {@inheritDoc}
1544     */
1545    public void setAllowAttributeNameExceptions(Boolean value) {
1546      impl.setPropertyValue(INSTANCE.getAllowAttributeNameExceptionsPropertyDefinition(), value);
1547    }
1548
1549
1550
1551    /**
1552     * {@inheritDoc}
1553     */
1554    public SortedSet<String> getAllowedTask() {
1555      return impl.getPropertyValues(INSTANCE.getAllowedTaskPropertyDefinition());
1556    }
1557
1558
1559
1560    /**
1561     * {@inheritDoc}
1562     */
1563    public void setAllowedTask(Collection<String> values) {
1564      impl.setPropertyValues(INSTANCE.getAllowedTaskPropertyDefinition(), values);
1565    }
1566
1567
1568
1569    /**
1570     * {@inheritDoc}
1571     */
1572    public boolean isBindWithDNRequiresPassword() {
1573      return impl.getPropertyValue(INSTANCE.getBindWithDNRequiresPasswordPropertyDefinition());
1574    }
1575
1576
1577
1578    /**
1579     * {@inheritDoc}
1580     */
1581    public void setBindWithDNRequiresPassword(Boolean value) {
1582      impl.setPropertyValue(INSTANCE.getBindWithDNRequiresPasswordPropertyDefinition(), value);
1583    }
1584
1585
1586
1587    /**
1588     * {@inheritDoc}
1589     */
1590    public boolean isCheckSchema() {
1591      return impl.getPropertyValue(INSTANCE.getCheckSchemaPropertyDefinition());
1592    }
1593
1594
1595
1596    /**
1597     * {@inheritDoc}
1598     */
1599    public void setCheckSchema(Boolean value) {
1600      impl.setPropertyValue(INSTANCE.getCheckSchemaPropertyDefinition(), value);
1601    }
1602
1603
1604
1605    /**
1606     * {@inheritDoc}
1607     */
1608    public String getDefaultPasswordPolicy() {
1609      return impl.getPropertyValue(INSTANCE.getDefaultPasswordPolicyPropertyDefinition());
1610    }
1611
1612
1613
1614    /**
1615     * {@inheritDoc}
1616     */
1617    public void setDefaultPasswordPolicy(String value) {
1618      impl.setPropertyValue(INSTANCE.getDefaultPasswordPolicyPropertyDefinition(), value);
1619    }
1620
1621
1622
1623    /**
1624     * {@inheritDoc}
1625     */
1626    public SortedSet<DisabledPrivilege> getDisabledPrivilege() {
1627      return impl.getPropertyValues(INSTANCE.getDisabledPrivilegePropertyDefinition());
1628    }
1629
1630
1631
1632    /**
1633     * {@inheritDoc}
1634     */
1635    public void setDisabledPrivilege(Collection<DisabledPrivilege> values) {
1636      impl.setPropertyValues(INSTANCE.getDisabledPrivilegePropertyDefinition(), values);
1637    }
1638
1639
1640
1641    /**
1642     * {@inheritDoc}
1643     */
1644    public EtimeResolution getEtimeResolution() {
1645      return impl.getPropertyValue(INSTANCE.getEtimeResolutionPropertyDefinition());
1646    }
1647
1648
1649
1650    /**
1651     * {@inheritDoc}
1652     */
1653    public void setEtimeResolution(EtimeResolution value) {
1654      impl.setPropertyValue(INSTANCE.getEtimeResolutionPropertyDefinition(), value);
1655    }
1656
1657
1658
1659    /**
1660     * {@inheritDoc}
1661     */
1662    public long getIdleTimeLimit() {
1663      return impl.getPropertyValue(INSTANCE.getIdleTimeLimitPropertyDefinition());
1664    }
1665
1666
1667
1668    /**
1669     * {@inheritDoc}
1670     */
1671    public void setIdleTimeLimit(Long value) {
1672      impl.setPropertyValue(INSTANCE.getIdleTimeLimitPropertyDefinition(), value);
1673    }
1674
1675
1676
1677    /**
1678     * {@inheritDoc}
1679     */
1680    public InvalidAttributeSyntaxBehavior getInvalidAttributeSyntaxBehavior() {
1681      return impl.getPropertyValue(INSTANCE.getInvalidAttributeSyntaxBehaviorPropertyDefinition());
1682    }
1683
1684
1685
1686    /**
1687     * {@inheritDoc}
1688     */
1689    public void setInvalidAttributeSyntaxBehavior(InvalidAttributeSyntaxBehavior value) {
1690      impl.setPropertyValue(INSTANCE.getInvalidAttributeSyntaxBehaviorPropertyDefinition(), value);
1691    }
1692
1693
1694
1695    /**
1696     * {@inheritDoc}
1697     */
1698    public int getLookthroughLimit() {
1699      return impl.getPropertyValue(INSTANCE.getLookthroughLimitPropertyDefinition());
1700    }
1701
1702
1703
1704    /**
1705     * {@inheritDoc}
1706     */
1707    public void setLookthroughLimit(Integer value) {
1708      impl.setPropertyValue(INSTANCE.getLookthroughLimitPropertyDefinition(), value);
1709    }
1710
1711
1712
1713    /**
1714     * {@inheritDoc}
1715     */
1716    public int getMaxAllowedClientConnections() {
1717      return impl.getPropertyValue(INSTANCE.getMaxAllowedClientConnectionsPropertyDefinition());
1718    }
1719
1720
1721
1722    /**
1723     * {@inheritDoc}
1724     */
1725    public void setMaxAllowedClientConnections(Integer value) {
1726      impl.setPropertyValue(INSTANCE.getMaxAllowedClientConnectionsPropertyDefinition(), value);
1727    }
1728
1729
1730
1731    /**
1732     * {@inheritDoc}
1733     */
1734    public long getMaxInternalBufferSize() {
1735      return impl.getPropertyValue(INSTANCE.getMaxInternalBufferSizePropertyDefinition());
1736    }
1737
1738
1739
1740    /**
1741     * {@inheritDoc}
1742     */
1743    public void setMaxInternalBufferSize(Long value) {
1744      impl.setPropertyValue(INSTANCE.getMaxInternalBufferSizePropertyDefinition(), value);
1745    }
1746
1747
1748
1749    /**
1750     * {@inheritDoc}
1751     */
1752    public int getMaxPsearches() {
1753      return impl.getPropertyValue(INSTANCE.getMaxPsearchesPropertyDefinition());
1754    }
1755
1756
1757
1758    /**
1759     * {@inheritDoc}
1760     */
1761    public void setMaxPsearches(Integer value) {
1762      impl.setPropertyValue(INSTANCE.getMaxPsearchesPropertyDefinition(), value);
1763    }
1764
1765
1766
1767    /**
1768     * {@inheritDoc}
1769     */
1770    public boolean isNotifyAbandonedOperations() {
1771      return impl.getPropertyValue(INSTANCE.getNotifyAbandonedOperationsPropertyDefinition());
1772    }
1773
1774
1775
1776    /**
1777     * {@inheritDoc}
1778     */
1779    public void setNotifyAbandonedOperations(Boolean value) {
1780      impl.setPropertyValue(INSTANCE.getNotifyAbandonedOperationsPropertyDefinition(), value);
1781    }
1782
1783
1784
1785    /**
1786     * {@inheritDoc}
1787     */
1788    public String getProxiedAuthorizationIdentityMapper() {
1789      return impl.getPropertyValue(INSTANCE.getProxiedAuthorizationIdentityMapperPropertyDefinition());
1790    }
1791
1792
1793
1794    /**
1795     * {@inheritDoc}
1796     */
1797    public void setProxiedAuthorizationIdentityMapper(String value) {
1798      impl.setPropertyValue(INSTANCE.getProxiedAuthorizationIdentityMapperPropertyDefinition(), value);
1799    }
1800
1801
1802
1803    /**
1804     * {@inheritDoc}
1805     */
1806    public boolean isRejectUnauthenticatedRequests() {
1807      return impl.getPropertyValue(INSTANCE.getRejectUnauthenticatedRequestsPropertyDefinition());
1808    }
1809
1810
1811
1812    /**
1813     * {@inheritDoc}
1814     */
1815    public void setRejectUnauthenticatedRequests(Boolean value) {
1816      impl.setPropertyValue(INSTANCE.getRejectUnauthenticatedRequestsPropertyDefinition(), value);
1817    }
1818
1819
1820
1821    /**
1822     * {@inheritDoc}
1823     */
1824    public boolean isReturnBindErrorMessages() {
1825      return impl.getPropertyValue(INSTANCE.getReturnBindErrorMessagesPropertyDefinition());
1826    }
1827
1828
1829
1830    /**
1831     * {@inheritDoc}
1832     */
1833    public void setReturnBindErrorMessages(Boolean value) {
1834      impl.setPropertyValue(INSTANCE.getReturnBindErrorMessagesPropertyDefinition(), value);
1835    }
1836
1837
1838
1839    /**
1840     * {@inheritDoc}
1841     */
1842    public boolean isSaveConfigOnSuccessfulStartup() {
1843      return impl.getPropertyValue(INSTANCE.getSaveConfigOnSuccessfulStartupPropertyDefinition());
1844    }
1845
1846
1847
1848    /**
1849     * {@inheritDoc}
1850     */
1851    public void setSaveConfigOnSuccessfulStartup(Boolean value) {
1852      impl.setPropertyValue(INSTANCE.getSaveConfigOnSuccessfulStartupPropertyDefinition(), value);
1853    }
1854
1855
1856
1857    /**
1858     * {@inheritDoc}
1859     */
1860    public int getServerErrorResultCode() {
1861      return impl.getPropertyValue(INSTANCE.getServerErrorResultCodePropertyDefinition());
1862    }
1863
1864
1865
1866    /**
1867     * {@inheritDoc}
1868     */
1869    public void setServerErrorResultCode(Integer value) {
1870      impl.setPropertyValue(INSTANCE.getServerErrorResultCodePropertyDefinition(), value);
1871    }
1872
1873
1874
1875    /**
1876     * {@inheritDoc}
1877     */
1878    public SingleStructuralObjectclassBehavior getSingleStructuralObjectclassBehavior() {
1879      return impl.getPropertyValue(INSTANCE.getSingleStructuralObjectclassBehaviorPropertyDefinition());
1880    }
1881
1882
1883
1884    /**
1885     * {@inheritDoc}
1886     */
1887    public void setSingleStructuralObjectclassBehavior(SingleStructuralObjectclassBehavior value) {
1888      impl.setPropertyValue(INSTANCE.getSingleStructuralObjectclassBehaviorPropertyDefinition(), value);
1889    }
1890
1891
1892
1893    /**
1894     * {@inheritDoc}
1895     */
1896    public int getSizeLimit() {
1897      return impl.getPropertyValue(INSTANCE.getSizeLimitPropertyDefinition());
1898    }
1899
1900
1901
1902    /**
1903     * {@inheritDoc}
1904     */
1905    public void setSizeLimit(Integer value) {
1906      impl.setPropertyValue(INSTANCE.getSizeLimitPropertyDefinition(), value);
1907    }
1908
1909
1910
1911    /**
1912     * {@inheritDoc}
1913     */
1914    public SortedSet<String> getSMTPServer() {
1915      return impl.getPropertyValues(INSTANCE.getSMTPServerPropertyDefinition());
1916    }
1917
1918
1919
1920    /**
1921     * {@inheritDoc}
1922     */
1923    public void setSMTPServer(Collection<String> values) {
1924      impl.setPropertyValues(INSTANCE.getSMTPServerPropertyDefinition(), values);
1925    }
1926
1927
1928
1929    /**
1930     * {@inheritDoc}
1931     */
1932    public long getTimeLimit() {
1933      return impl.getPropertyValue(INSTANCE.getTimeLimitPropertyDefinition());
1934    }
1935
1936
1937
1938    /**
1939     * {@inheritDoc}
1940     */
1941    public void setTimeLimit(Long value) {
1942      impl.setPropertyValue(INSTANCE.getTimeLimitPropertyDefinition(), value);
1943    }
1944
1945
1946
1947    /**
1948     * {@inheritDoc}
1949     */
1950    public boolean isTrustTransactionIds() {
1951      return impl.getPropertyValue(INSTANCE.getTrustTransactionIdsPropertyDefinition());
1952    }
1953
1954
1955
1956    /**
1957     * {@inheritDoc}
1958     */
1959    public void setTrustTransactionIds(Boolean value) {
1960      impl.setPropertyValue(INSTANCE.getTrustTransactionIdsPropertyDefinition(), value);
1961    }
1962
1963
1964
1965    /**
1966     * {@inheritDoc}
1967     */
1968    public WritabilityMode getWritabilityMode() {
1969      return impl.getPropertyValue(INSTANCE.getWritabilityModePropertyDefinition());
1970    }
1971
1972
1973
1974    /**
1975     * {@inheritDoc}
1976     */
1977    public void setWritabilityMode(WritabilityMode value) {
1978      impl.setPropertyValue(INSTANCE.getWritabilityModePropertyDefinition(), value);
1979    }
1980
1981
1982
1983    /**
1984     * {@inheritDoc}
1985     */
1986    public ManagedObjectDefinition<? extends GlobalCfgClient, ? extends GlobalCfg> definition() {
1987      return INSTANCE;
1988    }
1989
1990
1991
1992    /**
1993     * {@inheritDoc}
1994     */
1995    public PropertyProvider properties() {
1996      return impl;
1997    }
1998
1999
2000
2001    /**
2002     * {@inheritDoc}
2003     */
2004    public void commit() throws ManagedObjectAlreadyExistsException,
2005        MissingMandatoryPropertiesException, ConcurrentModificationException,
2006        OperationRejectedException, AuthorizationException,
2007        CommunicationException {
2008      impl.commit();
2009    }
2010
2011
2012
2013    /** {@inheritDoc} */
2014    public String toString() {
2015      return impl.toString();
2016    }
2017  }
2018
2019
2020
2021  /**
2022   * Managed object server implementation.
2023   */
2024  private static class GlobalCfgServerImpl implements
2025    GlobalCfg {
2026
2027    // Private implementation.
2028    private ServerManagedObject<? extends GlobalCfg> impl;
2029
2030    // The value of the "add-missing-rdn-attributes" property.
2031    private final boolean pAddMissingRDNAttributes;
2032
2033    // The value of the "allow-attribute-name-exceptions" property.
2034    private final boolean pAllowAttributeNameExceptions;
2035
2036    // The value of the "allowed-task" property.
2037    private final SortedSet<String> pAllowedTask;
2038
2039    // The value of the "bind-with-dn-requires-password" property.
2040    private final boolean pBindWithDNRequiresPassword;
2041
2042    // The value of the "check-schema" property.
2043    private final boolean pCheckSchema;
2044
2045    // The value of the "default-password-policy" property.
2046    private final String pDefaultPasswordPolicy;
2047
2048    // The value of the "disabled-privilege" property.
2049    private final SortedSet<DisabledPrivilege> pDisabledPrivilege;
2050
2051    // The value of the "etime-resolution" property.
2052    private final EtimeResolution pEtimeResolution;
2053
2054    // The value of the "idle-time-limit" property.
2055    private final long pIdleTimeLimit;
2056
2057    // The value of the "invalid-attribute-syntax-behavior" property.
2058    private final InvalidAttributeSyntaxBehavior pInvalidAttributeSyntaxBehavior;
2059
2060    // The value of the "lookthrough-limit" property.
2061    private final int pLookthroughLimit;
2062
2063    // The value of the "max-allowed-client-connections" property.
2064    private final int pMaxAllowedClientConnections;
2065
2066    // The value of the "max-internal-buffer-size" property.
2067    private final long pMaxInternalBufferSize;
2068
2069    // The value of the "max-psearches" property.
2070    private final int pMaxPsearches;
2071
2072    // The value of the "notify-abandoned-operations" property.
2073    private final boolean pNotifyAbandonedOperations;
2074
2075    // The value of the "proxied-authorization-identity-mapper" property.
2076    private final String pProxiedAuthorizationIdentityMapper;
2077
2078    // The value of the "reject-unauthenticated-requests" property.
2079    private final boolean pRejectUnauthenticatedRequests;
2080
2081    // The value of the "return-bind-error-messages" property.
2082    private final boolean pReturnBindErrorMessages;
2083
2084    // The value of the "save-config-on-successful-startup" property.
2085    private final boolean pSaveConfigOnSuccessfulStartup;
2086
2087    // The value of the "server-error-result-code" property.
2088    private final int pServerErrorResultCode;
2089
2090    // The value of the "single-structural-objectclass-behavior" property.
2091    private final SingleStructuralObjectclassBehavior pSingleStructuralObjectclassBehavior;
2092
2093    // The value of the "size-limit" property.
2094    private final int pSizeLimit;
2095
2096    // The value of the "smtp-server" property.
2097    private final SortedSet<String> pSMTPServer;
2098
2099    // The value of the "time-limit" property.
2100    private final long pTimeLimit;
2101
2102    // The value of the "trust-transaction-ids" property.
2103    private final boolean pTrustTransactionIds;
2104
2105    // The value of the "writability-mode" property.
2106    private final WritabilityMode pWritabilityMode;
2107
2108
2109
2110    // Private constructor.
2111    private GlobalCfgServerImpl(ServerManagedObject<? extends GlobalCfg> impl) {
2112      this.impl = impl;
2113      this.pAddMissingRDNAttributes = impl.getPropertyValue(INSTANCE.getAddMissingRDNAttributesPropertyDefinition());
2114      this.pAllowAttributeNameExceptions = impl.getPropertyValue(INSTANCE.getAllowAttributeNameExceptionsPropertyDefinition());
2115      this.pAllowedTask = impl.getPropertyValues(INSTANCE.getAllowedTaskPropertyDefinition());
2116      this.pBindWithDNRequiresPassword = impl.getPropertyValue(INSTANCE.getBindWithDNRequiresPasswordPropertyDefinition());
2117      this.pCheckSchema = impl.getPropertyValue(INSTANCE.getCheckSchemaPropertyDefinition());
2118      this.pDefaultPasswordPolicy = impl.getPropertyValue(INSTANCE.getDefaultPasswordPolicyPropertyDefinition());
2119      this.pDisabledPrivilege = impl.getPropertyValues(INSTANCE.getDisabledPrivilegePropertyDefinition());
2120      this.pEtimeResolution = impl.getPropertyValue(INSTANCE.getEtimeResolutionPropertyDefinition());
2121      this.pIdleTimeLimit = impl.getPropertyValue(INSTANCE.getIdleTimeLimitPropertyDefinition());
2122      this.pInvalidAttributeSyntaxBehavior = impl.getPropertyValue(INSTANCE.getInvalidAttributeSyntaxBehaviorPropertyDefinition());
2123      this.pLookthroughLimit = impl.getPropertyValue(INSTANCE.getLookthroughLimitPropertyDefinition());
2124      this.pMaxAllowedClientConnections = impl.getPropertyValue(INSTANCE.getMaxAllowedClientConnectionsPropertyDefinition());
2125      this.pMaxInternalBufferSize = impl.getPropertyValue(INSTANCE.getMaxInternalBufferSizePropertyDefinition());
2126      this.pMaxPsearches = impl.getPropertyValue(INSTANCE.getMaxPsearchesPropertyDefinition());
2127      this.pNotifyAbandonedOperations = impl.getPropertyValue(INSTANCE.getNotifyAbandonedOperationsPropertyDefinition());
2128      this.pProxiedAuthorizationIdentityMapper = impl.getPropertyValue(INSTANCE.getProxiedAuthorizationIdentityMapperPropertyDefinition());
2129      this.pRejectUnauthenticatedRequests = impl.getPropertyValue(INSTANCE.getRejectUnauthenticatedRequestsPropertyDefinition());
2130      this.pReturnBindErrorMessages = impl.getPropertyValue(INSTANCE.getReturnBindErrorMessagesPropertyDefinition());
2131      this.pSaveConfigOnSuccessfulStartup = impl.getPropertyValue(INSTANCE.getSaveConfigOnSuccessfulStartupPropertyDefinition());
2132      this.pServerErrorResultCode = impl.getPropertyValue(INSTANCE.getServerErrorResultCodePropertyDefinition());
2133      this.pSingleStructuralObjectclassBehavior = impl.getPropertyValue(INSTANCE.getSingleStructuralObjectclassBehaviorPropertyDefinition());
2134      this.pSizeLimit = impl.getPropertyValue(INSTANCE.getSizeLimitPropertyDefinition());
2135      this.pSMTPServer = impl.getPropertyValues(INSTANCE.getSMTPServerPropertyDefinition());
2136      this.pTimeLimit = impl.getPropertyValue(INSTANCE.getTimeLimitPropertyDefinition());
2137      this.pTrustTransactionIds = impl.getPropertyValue(INSTANCE.getTrustTransactionIdsPropertyDefinition());
2138      this.pWritabilityMode = impl.getPropertyValue(INSTANCE.getWritabilityModePropertyDefinition());
2139    }
2140
2141
2142
2143    /**
2144     * {@inheritDoc}
2145     */
2146    public void addChangeListener(
2147        ConfigurationChangeListener<GlobalCfg> listener) {
2148      impl.registerChangeListener(listener);
2149    }
2150
2151
2152
2153    /**
2154     * {@inheritDoc}
2155     */
2156    public void removeChangeListener(
2157        ConfigurationChangeListener<GlobalCfg> listener) {
2158      impl.deregisterChangeListener(listener);
2159    }
2160
2161
2162
2163    /**
2164     * {@inheritDoc}
2165     */
2166    public boolean isAddMissingRDNAttributes() {
2167      return pAddMissingRDNAttributes;
2168    }
2169
2170
2171
2172    /**
2173     * {@inheritDoc}
2174     */
2175    public boolean isAllowAttributeNameExceptions() {
2176      return pAllowAttributeNameExceptions;
2177    }
2178
2179
2180
2181    /**
2182     * {@inheritDoc}
2183     */
2184    public SortedSet<String> getAllowedTask() {
2185      return pAllowedTask;
2186    }
2187
2188
2189
2190    /**
2191     * {@inheritDoc}
2192     */
2193    public boolean isBindWithDNRequiresPassword() {
2194      return pBindWithDNRequiresPassword;
2195    }
2196
2197
2198
2199    /**
2200     * {@inheritDoc}
2201     */
2202    public boolean isCheckSchema() {
2203      return pCheckSchema;
2204    }
2205
2206
2207
2208    /**
2209     * {@inheritDoc}
2210     */
2211    public String getDefaultPasswordPolicy() {
2212      return pDefaultPasswordPolicy;
2213    }
2214
2215
2216
2217    /**
2218     * {@inheritDoc}
2219     */
2220    public DN getDefaultPasswordPolicyDN() {
2221      String value = getDefaultPasswordPolicy();
2222      if (value == null) return null;
2223      return INSTANCE.getDefaultPasswordPolicyPropertyDefinition().getChildDN(value);
2224    }
2225
2226
2227
2228    /**
2229     * {@inheritDoc}
2230     */
2231    public SortedSet<DisabledPrivilege> getDisabledPrivilege() {
2232      return pDisabledPrivilege;
2233    }
2234
2235
2236
2237    /**
2238     * {@inheritDoc}
2239     */
2240    public EtimeResolution getEtimeResolution() {
2241      return pEtimeResolution;
2242    }
2243
2244
2245
2246    /**
2247     * {@inheritDoc}
2248     */
2249    public long getIdleTimeLimit() {
2250      return pIdleTimeLimit;
2251    }
2252
2253
2254
2255    /**
2256     * {@inheritDoc}
2257     */
2258    public InvalidAttributeSyntaxBehavior getInvalidAttributeSyntaxBehavior() {
2259      return pInvalidAttributeSyntaxBehavior;
2260    }
2261
2262
2263
2264    /**
2265     * {@inheritDoc}
2266     */
2267    public int getLookthroughLimit() {
2268      return pLookthroughLimit;
2269    }
2270
2271
2272
2273    /**
2274     * {@inheritDoc}
2275     */
2276    public int getMaxAllowedClientConnections() {
2277      return pMaxAllowedClientConnections;
2278    }
2279
2280
2281
2282    /**
2283     * {@inheritDoc}
2284     */
2285    public long getMaxInternalBufferSize() {
2286      return pMaxInternalBufferSize;
2287    }
2288
2289
2290
2291    /**
2292     * {@inheritDoc}
2293     */
2294    public int getMaxPsearches() {
2295      return pMaxPsearches;
2296    }
2297
2298
2299
2300    /**
2301     * {@inheritDoc}
2302     */
2303    public boolean isNotifyAbandonedOperations() {
2304      return pNotifyAbandonedOperations;
2305    }
2306
2307
2308
2309    /**
2310     * {@inheritDoc}
2311     */
2312    public String getProxiedAuthorizationIdentityMapper() {
2313      return pProxiedAuthorizationIdentityMapper;
2314    }
2315
2316
2317
2318    /**
2319     * {@inheritDoc}
2320     */
2321    public DN getProxiedAuthorizationIdentityMapperDN() {
2322      String value = getProxiedAuthorizationIdentityMapper();
2323      if (value == null) return null;
2324      return INSTANCE.getProxiedAuthorizationIdentityMapperPropertyDefinition().getChildDN(value);
2325    }
2326
2327
2328
2329    /**
2330     * {@inheritDoc}
2331     */
2332    public boolean isRejectUnauthenticatedRequests() {
2333      return pRejectUnauthenticatedRequests;
2334    }
2335
2336
2337
2338    /**
2339     * {@inheritDoc}
2340     */
2341    public boolean isReturnBindErrorMessages() {
2342      return pReturnBindErrorMessages;
2343    }
2344
2345
2346
2347    /**
2348     * {@inheritDoc}
2349     */
2350    public boolean isSaveConfigOnSuccessfulStartup() {
2351      return pSaveConfigOnSuccessfulStartup;
2352    }
2353
2354
2355
2356    /**
2357     * {@inheritDoc}
2358     */
2359    public int getServerErrorResultCode() {
2360      return pServerErrorResultCode;
2361    }
2362
2363
2364
2365    /**
2366     * {@inheritDoc}
2367     */
2368    public SingleStructuralObjectclassBehavior getSingleStructuralObjectclassBehavior() {
2369      return pSingleStructuralObjectclassBehavior;
2370    }
2371
2372
2373
2374    /**
2375     * {@inheritDoc}
2376     */
2377    public int getSizeLimit() {
2378      return pSizeLimit;
2379    }
2380
2381
2382
2383    /**
2384     * {@inheritDoc}
2385     */
2386    public SortedSet<String> getSMTPServer() {
2387      return pSMTPServer;
2388    }
2389
2390
2391
2392    /**
2393     * {@inheritDoc}
2394     */
2395    public long getTimeLimit() {
2396      return pTimeLimit;
2397    }
2398
2399
2400
2401    /**
2402     * {@inheritDoc}
2403     */
2404    public boolean isTrustTransactionIds() {
2405      return pTrustTransactionIds;
2406    }
2407
2408
2409
2410    /**
2411     * {@inheritDoc}
2412     */
2413    public WritabilityMode getWritabilityMode() {
2414      return pWritabilityMode;
2415    }
2416
2417
2418
2419    /**
2420     * {@inheritDoc}
2421     */
2422    public Class<? extends GlobalCfg> configurationClass() {
2423      return GlobalCfg.class;
2424    }
2425
2426
2427
2428    /**
2429     * {@inheritDoc}
2430     */
2431    public DN dn() {
2432      return impl.getDN();
2433    }
2434
2435
2436
2437    /** {@inheritDoc} */
2438    public String toString() {
2439      return impl.toString();
2440    }
2441  }
2442}