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