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