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