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}