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 010 * docs/licenses/cddl.txt 011 * or http://www.opensource.org/licenses/cddl1.php. 012 * See the License for the specific language governing permissions 013 * and limitations under the License. 014 * 015 * When distributing Covered Code, include this CDDL HEADER in each 016 * file and include the License file at 017 * docs/licenses/cddl.txt. If applicable, 018 * add the following below this CDDL HEADER, with the fields enclosed 019 * by brackets "[]" replaced with your own identifying information: 020 * Portions Copyright [yyyy] [name of copyright owner] 021 * 022 * CDDL HEADER END 023 * 024 * 025 * Copyright 2010-2012 UnboundID Corp. 026 */ 027 package com.unboundid.directory.sdk.common.scripting; 028 029 030 031 import java.security.cert.Certificate; 032 import java.util.List; 033 034 import com.unboundid.directory.sdk.common.config.AccessLoggerConfig; 035 import com.unboundid.directory.sdk.common.internal.Reconfigurable; 036 import com.unboundid.directory.sdk.common.operation.AbandonRequest; 037 import com.unboundid.directory.sdk.common.operation.AddRequest; 038 import com.unboundid.directory.sdk.common.operation.AddResult; 039 import com.unboundid.directory.sdk.common.operation.BindResult; 040 import com.unboundid.directory.sdk.common.operation.CompareRequest; 041 import com.unboundid.directory.sdk.common.operation.CompareResult; 042 import com.unboundid.directory.sdk.common.operation.DeleteRequest; 043 import com.unboundid.directory.sdk.common.operation.DeleteResult; 044 import com.unboundid.directory.sdk.common.operation.ExtendedRequest; 045 import com.unboundid.directory.sdk.common.operation.ExtendedResult; 046 import com.unboundid.directory.sdk.common.operation.GenericResult; 047 import com.unboundid.directory.sdk.common.operation.ModifyRequest; 048 import com.unboundid.directory.sdk.common.operation.ModifyResult; 049 import com.unboundid.directory.sdk.common.operation.ModifyDNRequest; 050 import com.unboundid.directory.sdk.common.operation.ModifyDNResult; 051 import com.unboundid.directory.sdk.common.operation.SASLBindRequest; 052 import com.unboundid.directory.sdk.common.operation.SearchRequest; 053 import com.unboundid.directory.sdk.common.operation.SearchResult; 054 import com.unboundid.directory.sdk.common.operation.SimpleBindRequest; 055 import com.unboundid.directory.sdk.common.operation.UnbindRequest; 056 import com.unboundid.directory.sdk.common.types.ClientContext; 057 import com.unboundid.directory.sdk.common.types.CompletedOperationContext; 058 import com.unboundid.directory.sdk.common.types.CompletedSearchOperationContext; 059 import com.unboundid.directory.sdk.common.types.DisconnectReason; 060 import com.unboundid.directory.sdk.common.types.Entry; 061 import com.unboundid.directory.sdk.common.types.ForwardTarget; 062 import com.unboundid.directory.sdk.common.types.OperationContext; 063 import com.unboundid.directory.sdk.common.types.ServerContext; 064 import com.unboundid.directory.sdk.ds.internal.DirectoryServerExtension; 065 import com.unboundid.directory.sdk.proxy.internal.DirectoryProxyServerExtension; 066 import com.unboundid.directory.sdk.sync.internal.SynchronizationServerExtension; 067 import com.unboundid.ldap.sdk.Control; 068 import com.unboundid.ldap.sdk.IntermediateResponse; 069 import com.unboundid.ldap.sdk.LDAPException; 070 import com.unboundid.ldap.sdk.ResultCode; 071 import com.unboundid.util.Extensible; 072 import com.unboundid.util.ThreadSafety; 073 import com.unboundid.util.ThreadSafetyLevel; 074 import com.unboundid.util.args.ArgumentException; 075 import com.unboundid.util.args.ArgumentParser; 076 077 078 079 /** 080 * This class defines an API that must be implemented by scripted extensions 081 * which record information about interaction with clients, including 082 * connections established and received and operations requested and completed. 083 * <BR><BR> 084 * Access loggers will be invoked for the following events: 085 * <UL> 086 * <LI>Whenever a new connection is established.</LI> 087 * <LI>Whenever an existing connection is closed or terminated.</LI> 088 * <LI>Whenever an abandon, add, bind, compare, delete, extended, modify, 089 * modify DN, search, or unbind request is received.</LI> 090 * <LI>Whenever an abandon, add, bind, compare, delete, extended, modify, 091 * modify DN, or search request is forwarded to another server for 092 * processing.</LI> 093 * <LI>If a forwarded add, bind, compare, delete, extended, modify, modify DN, 094 * or search operation fails.</LI> 095 * <LI>After sending the result for an add, bind, compare, delete, extended, 096 * modify, modify DN, or search operation.</LI> 097 * <LI>After completing processing for an abandon operation.</LI> 098 * <LI>After sending a search result entry, search result reference, or 099 * intermediate response message to the client.</LI> 100 * </UL> 101 * <BR><BR> 102 * Each access logger may configured to indicate whether to include or exclude 103 * internal and/or replicated operations, and criteria may be used to provide 104 * filtered logging. This is handled automatically by the server, so individual 105 * access logger implementations do not need to attempt to perform that 106 * filtering on their own. However, they may perform additional processing if 107 * desired to further narrow the set of messages that should be logged. 108 * <BR> 109 * <H2>Configuring Groovy-Scripted Access Loggers</H2> 110 * In order to configure a scripted access logger based on this API and written 111 * in the Groovy scripting language, use a command 112 * like: 113 * <PRE> 114 * dsconfig create-log-publisher \ 115 * --publisher-name "<I>{logger-name}</I>" \ 116 * --type groovy-scripted-access \ 117 * --set enabled:true \ 118 * --set "script-class:<I>{class-name}</I>" \ 119 * --set "script-argument:<I>{name=value}</I>" 120 * </PRE> 121 * where "<I>{logger-name}</I>" is the name to use for the access logger 122 * instance, "<I>{class-name}</I>" is the fully-qualified name of the Groovy 123 * class written using this API, and "<I>{name=value}</I>" represents name-value 124 * pairs for any arguments to provide to the logger. If multiple arguments 125 * should be provided to the logger, then the 126 * "<CODE>--set script-argument:<I>{name=value}</I></CODE>" option should be 127 * provided multiple times. 128 * 129 * @see com.unboundid.directory.sdk.common.api.AccessLogger 130 * @see com.unboundid.directory.sdk.common.api.FileBasedAccessLogger 131 * @see ScriptedFileBasedAccessLogger 132 */ 133 @Extensible() 134 @DirectoryServerExtension() 135 @DirectoryProxyServerExtension(appliesToLocalContent=true, 136 appliesToRemoteContent=false) 137 @SynchronizationServerExtension(appliesToLocalContent=true, 138 appliesToSynchronizedContent=false) 139 @ThreadSafety(level=ThreadSafetyLevel.INTERFACE_THREADSAFE) 140 public abstract class ScriptedAccessLogger 141 implements Reconfigurable<AccessLoggerConfig> 142 { 143 /** 144 * Creates a new instance of this access logger. All access logger 145 * implementations must include a default constructor, but any initialization 146 * should generally be done in the {@code initializeAccessLogger} method. 147 */ 148 public ScriptedAccessLogger() 149 { 150 // No implementation is required. 151 } 152 153 154 155 /** 156 * {@inheritDoc} 157 */ 158 public void defineConfigArguments(final ArgumentParser parser) 159 throws ArgumentException 160 { 161 // No arguments will be allowed by default. 162 } 163 164 165 166 /** 167 * Initializes this access logger. 168 * 169 * @param serverContext A handle to the server context for the server in 170 * which this extension is running. 171 * @param config The general configuration for this access logger. 172 * @param parser The argument parser which has been initialized from 173 * the configuration for this access logger. 174 * 175 * @throws LDAPException If a problem occurs while initializing this 176 * access logger. 177 */ 178 public void initializeAccessLogger(final ServerContext serverContext, 179 final AccessLoggerConfig config, 180 final ArgumentParser parser) 181 throws LDAPException 182 { 183 // No initialization will be performed by default. 184 } 185 186 187 188 /** 189 * Performs any cleanup which may be necessary when this access logger is to 190 * be taken out of service. 191 */ 192 public void finalizeAccessLogger() 193 { 194 // No implementation is required. 195 } 196 197 198 199 /** 200 * {@inheritDoc} 201 */ 202 public boolean isConfigurationAcceptable(final AccessLoggerConfig config, 203 final ArgumentParser parser, 204 final List<String> unacceptableReasons) 205 { 206 // No extended validation will be performed. 207 return true; 208 } 209 210 211 212 /** 213 * {@inheritDoc} 214 */ 215 public ResultCode applyConfiguration(final AccessLoggerConfig config, 216 final ArgumentParser parser, 217 final List<String> adminActionsRequired, 218 final List<String> messages) 219 { 220 // By default, no configuration changes will be applied. If there are any 221 // arguments, then add an admin action message indicating that the extension 222 // needs to be restarted for any changes to take effect. 223 if (! parser.getNamedArguments().isEmpty()) 224 { 225 adminActionsRequired.add( 226 "No configuration change has actually been applied. The new " + 227 "configuration will not take effect until this access logger " + 228 "is disabled and re-enabled or until the server is restarted."); 229 } 230 231 return ResultCode.SUCCESS; 232 } 233 234 235 236 /** 237 * Logs a message indicating that a new connection has been established. 238 * 239 * @param clientContext Information about the client connection that has 240 * been accepted. 241 */ 242 public void logConnect(final ClientContext clientContext) 243 { 244 // No action will be taken by default. 245 } 246 247 248 249 /** 250 * Logs a message indicating that a connection has been closed. 251 * 252 * @param clientContext Information about the client connection that has 253 * been closed. 254 * @param disconnectReason A general reason that the connection has been 255 * closed. 256 * @param message A message with additional information about the 257 * closure. It may be {@code null} if none is 258 * available. 259 */ 260 public void logDisconnect(final ClientContext clientContext, 261 final DisconnectReason disconnectReason, 262 final String message) 263 { 264 // No action will be taken by default. 265 } 266 267 268 269 /** 270 * Logs a message about a certificate chain presented by a client. 271 * 272 * @param clientContext Information about the client that presented the 273 * certificate chain. 274 * @param certChain The certificate chain presented by the client. 275 * @param authDN The DN of the user as whom the client was 276 * automatically authenticated, or {@code null} if the 277 * client was not automatically authenticated. 278 */ 279 public void logClientCertificateChain(final ClientContext clientContext, 280 final Certificate[] certChain, 281 final String authDN) 282 { 283 // No action will be taken by default. 284 } 285 286 287 288 /** 289 * Logs a message about an abandon request received from a client. 290 * 291 * @param opContext The operation context for the abandon operation. 292 * @param request The abandon request that was received. 293 */ 294 public void logAbandonRequest(final OperationContext opContext, 295 final AbandonRequest request) 296 { 297 // No action will be taken by default. 298 } 299 300 301 302 /** 303 * Logs a message about an abandon request that will be forwarded to another 304 * server. 305 * 306 * @param opContext The operation context for the abandon operation. 307 * @param request The abandon request that was received. 308 * @param target Information about the server to which the request will 309 * be forwarded. 310 */ 311 public void logAbandonForward(final OperationContext opContext, 312 final AbandonRequest request, 313 final ForwardTarget target) 314 { 315 // No action will be taken by default. 316 } 317 318 319 320 /** 321 * Logs a message about the result of processing an abandon request. 322 * 323 * @param opContext The operation context for the abandon operation. 324 * @param request The abandon request that was received. 325 * @param result The result of processing the abandon request. 326 */ 327 public void logAbandonResult(final CompletedOperationContext opContext, 328 final AbandonRequest request, 329 final GenericResult result) 330 { 331 // No action will be taken by default. 332 } 333 334 335 336 /** 337 * Logs a message about an add request received from a client. 338 * 339 * @param opContext The operation context for the add operation. 340 * @param request The add request that was received. 341 */ 342 public void logAddRequest(final OperationContext opContext, 343 final AddRequest request) 344 { 345 // No action will be taken by default. 346 } 347 348 349 350 /** 351 * Logs a message about an add request that will be forwarded to another 352 * server. 353 * 354 * @param opContext The operation context for the add operation. 355 * @param request The add request that was received. 356 * @param target Information about the server to which the request will 357 * be forwarded. 358 */ 359 public void logAddForward(final OperationContext opContext, 360 final AddRequest request, 361 final ForwardTarget target) 362 { 363 // No action will be taken by default. 364 } 365 366 367 368 /** 369 * Logs a message about a failure encountered while attempting to forward an 370 * add request to another server. 371 * 372 * @param opContext The operation context for the add operation. 373 * @param request The add request that was received. 374 * @param target Information about the server to which the request was 375 * forwarded. 376 * @param failure The exception that was received when attempting to 377 * forward the request. 378 */ 379 public void logAddForwardFailure(final OperationContext opContext, 380 final AddRequest request, 381 final ForwardTarget target, 382 final LDAPException failure) 383 { 384 // No action will be taken by default. 385 } 386 387 388 389 /** 390 * Logs a message about the result of processing an add request. 391 * 392 * @param opContext The operation context for the add operation. 393 * @param request The add request that was received. 394 * @param result The result of processing the add request. 395 */ 396 public void logAddResponse(final CompletedOperationContext opContext, 397 final AddRequest request, 398 final AddResult result) 399 { 400 // No action will be taken by default. 401 } 402 403 404 405 /** 406 * Logs a message about a simple bind request received from a client. 407 * 408 * @param opContext The operation context for the bind operation. 409 * @param request The bind request that was received. 410 */ 411 public void logBindRequest(final OperationContext opContext, 412 final SimpleBindRequest request) 413 { 414 // No action will be taken by default. 415 } 416 417 418 419 /** 420 * Logs a message about a simple bind request that will be forwarded to 421 * another server. 422 * 423 * @param opContext The operation context for the bind operation. 424 * @param request The bind request that was received. 425 * @param target Information about the server to which the request will 426 * be forwarded. 427 */ 428 public void logBindForward(final OperationContext opContext, 429 final SimpleBindRequest request, 430 final ForwardTarget target) 431 { 432 // No action will be taken by default. 433 } 434 435 436 437 /** 438 * Logs a message about a failure encountered while attempting to forward a 439 * simple bind request to another server. 440 * 441 * @param opContext The operation context for the bind operation. 442 * @param request The bind request that was received. 443 * @param target Information about the server to which the request was 444 * forwarded. 445 * @param failure The exception that was received when attempting to 446 * forward the request. 447 */ 448 public void logBindForwardFailure(final OperationContext opContext, 449 final SimpleBindRequest request, 450 final ForwardTarget target, 451 final LDAPException failure) 452 { 453 // No action will be taken by default. 454 } 455 456 457 458 /** 459 * Logs a message about the result of processing a simple bind request. 460 * 461 * @param opContext The operation context for the bind operation. 462 * @param request The bind request that was received. 463 * @param result The result of processing the bind request. 464 */ 465 public void logBindResponse(final CompletedOperationContext opContext, 466 final SimpleBindRequest request, 467 final BindResult result) 468 { 469 // No action will be taken by default. 470 } 471 472 473 474 /** 475 * Logs a message about a SASL bind request received from a client. 476 * 477 * @param opContext The operation context for the bind operation. 478 * @param request The bind request that was received. 479 */ 480 public void logBindRequest(final OperationContext opContext, 481 final SASLBindRequest request) 482 { 483 // No action will be taken by default. 484 } 485 486 487 488 /** 489 * Logs a message about a SASL bind request that will be forwarded to 490 * another server. 491 * 492 * @param opContext The operation context for the bind operation. 493 * @param request The bind request that was received. 494 * @param target Information about the server to which the request will 495 * be forwarded. 496 */ 497 public void logBindForward(final OperationContext opContext, 498 final SASLBindRequest request, 499 final ForwardTarget target) 500 { 501 // No action will be taken by default. 502 } 503 504 505 506 /** 507 * Logs a message about a failure encountered while attempting to forward a 508 * SASL bind request to another server. 509 * 510 * @param opContext The operation context for the bind operation. 511 * @param request The bind request that was received. 512 * @param target Information about the server to which the request was 513 * forwarded. 514 * @param failure The exception that was received when attempting to 515 * forward the request. 516 */ 517 public void logBindForwardFailure(final OperationContext opContext, 518 final SASLBindRequest request, 519 final ForwardTarget target, 520 final LDAPException failure) 521 { 522 // No action will be taken by default. 523 } 524 525 526 527 /** 528 * Logs a message about the result of processing a SASL bind request. 529 * 530 * @param opContext The operation context for the bind operation. 531 * @param request The bind request that was received. 532 * @param result The result of processing the bind request. 533 */ 534 public void logBindResponse(final CompletedOperationContext opContext, 535 final SASLBindRequest request, 536 final BindResult result) 537 { 538 // No action will be taken by default. 539 } 540 541 542 543 /** 544 * Logs a message about a compare request received from a client. 545 * 546 * @param opContext The operation context for the compare operation. 547 * @param request The compare request that was received. 548 */ 549 public void logCompareRequest(final OperationContext opContext, 550 final CompareRequest request) 551 { 552 // No action will be taken by default. 553 } 554 555 556 557 /** 558 * Logs a message about a compare request that will be forwarded to another 559 * server. 560 * 561 * @param opContext The operation context for the compare operation. 562 * @param request The compare request that was received. 563 * @param target Information about the server to which the request will 564 * be forwarded. 565 */ 566 public void logCompareForward(final OperationContext opContext, 567 final CompareRequest request, 568 final ForwardTarget target) 569 { 570 // No action will be taken by default. 571 } 572 573 574 575 /** 576 * Logs a message about a failure encountered while attempting to forward a 577 * compare request to another server. 578 * 579 * @param opContext The operation context for the compare operation. 580 * @param request The compare request that was received. 581 * @param target Information about the server to which the request was 582 * forwarded. 583 * @param failure The exception that was received when attempting to 584 * forward the request. 585 */ 586 public void logCompareForwardFailure(final OperationContext opContext, 587 final CompareRequest request, 588 final ForwardTarget target, 589 final LDAPException failure) 590 { 591 // No action will be taken by default. 592 } 593 594 595 596 /** 597 * Logs a message about the result of processing a compare request. 598 * 599 * @param opContext The operation context for the compare operation. 600 * @param request The compare request that was received. 601 * @param result The result of processing the compare request. 602 */ 603 public void logCompareResponse(final CompletedOperationContext opContext, 604 final CompareRequest request, 605 final CompareResult result) 606 { 607 // No action will be taken by default. 608 } 609 610 611 612 /** 613 * Logs a message about a delete request received from a client. 614 * 615 * @param opContext The operation context for the delete operation. 616 * @param request The delete request that was received. 617 */ 618 public void logDeleteRequest(final OperationContext opContext, 619 final DeleteRequest request) 620 { 621 // No action will be taken by default. 622 } 623 624 625 626 /** 627 * Logs a message about a delete request that will be forwarded to another 628 * server. 629 * 630 * @param opContext The operation context for the delete operation. 631 * @param request The delete request that was received. 632 * @param target Information about the server to which the request will 633 * be forwarded. 634 */ 635 public void logDeleteForward(final OperationContext opContext, 636 final DeleteRequest request, 637 final ForwardTarget target) 638 { 639 // No action will be taken by default. 640 } 641 642 643 644 /** 645 * Logs a message about a failure encountered while attempting to forward a 646 * delete request to another server. 647 * 648 * @param opContext The operation context for the delete operation. 649 * @param request The delete request that was received. 650 * @param target Information about the server to which the request was 651 * forwarded. 652 * @param failure The exception that was received when attempting to 653 * forward the request. 654 */ 655 public void logDeleteForwardFailure(final OperationContext opContext, 656 final DeleteRequest request, 657 final ForwardTarget target, 658 final LDAPException failure) 659 { 660 // No action will be taken by default. 661 } 662 663 664 665 /** 666 * Logs a message about the result of processing a delete request. 667 * 668 * @param opContext The operation context for the delete operation. 669 * @param request The delete request that was received. 670 * @param result The result of processing the delete request. 671 */ 672 public void logDeleteResponse(final CompletedOperationContext opContext, 673 final DeleteRequest request, 674 final DeleteResult result) 675 { 676 // No action will be taken by default. 677 } 678 679 680 681 /** 682 * Logs a message about an extended request received from a client. 683 * 684 * @param opContext The operation context for the extended operation. 685 * @param request The extended request that was received. 686 */ 687 public void logExtendedRequest(final OperationContext opContext, 688 final ExtendedRequest request) 689 { 690 // No action will be taken by default. 691 } 692 693 694 695 /** 696 * Logs a message about an extended request that will be forwarded to another 697 * server. 698 * 699 * @param opContext The operation context for the extended operation. 700 * @param request The extended request that was received. 701 * @param target Information about the server to which the request will 702 * be forwarded. 703 */ 704 public void logExtendedForward(final OperationContext opContext, 705 final ExtendedRequest request, 706 final ForwardTarget target) 707 { 708 // No action will be taken by default. 709 } 710 711 712 713 /** 714 * Logs a message about a failure encountered while attempting to forward an 715 * extended request to another server. 716 * 717 * @param opContext The operation context for the extended operation. 718 * @param request The extended request that was received. 719 * @param target Information about the server to which the request was 720 * forwarded. 721 * @param failure The exception that was received when attempting to 722 * forward the request. 723 */ 724 public void logExtendedForwardFailure(final OperationContext opContext, 725 final ExtendedRequest request, 726 final ForwardTarget target, 727 final LDAPException failure) 728 { 729 // No action will be taken by default. 730 } 731 732 733 734 /** 735 * Logs a message about the result of processing an extended request. 736 * 737 * @param opContext The operation context for the extended operation. 738 * @param request The extended request that was received. 739 * @param result The result of processing the extended request. 740 */ 741 public void logExtendedResponse(final CompletedOperationContext opContext, 742 final ExtendedRequest request, 743 final ExtendedResult result) 744 { 745 // No action will be taken by default. 746 } 747 748 749 750 /** 751 * Logs a message about a modify request received from a client. 752 * 753 * @param opContext The operation context for the modify operation. 754 * @param request The modify request that was received. 755 */ 756 public void logModifyRequest(final OperationContext opContext, 757 final ModifyRequest request) 758 { 759 // No action will be taken by default. 760 } 761 762 763 764 /** 765 * Logs a message about a modify request that will be forwarded to another 766 * server. 767 * 768 * @param opContext The operation context for the modify operation. 769 * @param request The modify request that was received. 770 * @param target Information about the server to which the request will 771 * be forwarded. 772 */ 773 public void logModifyForward(final OperationContext opContext, 774 final ModifyRequest request, 775 final ForwardTarget target) 776 { 777 // No action will be taken by default. 778 } 779 780 781 782 /** 783 * Logs a message about a failure encountered while attempting to forward a 784 * modify request to another server. 785 * 786 * @param opContext The operation context for the modify operation. 787 * @param request The modify request that was received. 788 * @param target Information about the server to which the request was 789 * forwarded. 790 * @param failure The exception that was received when attempting to 791 * forward the request. 792 */ 793 public void logModifyForwardFailure(final OperationContext opContext, 794 final ModifyRequest request, 795 final ForwardTarget target, 796 final LDAPException failure) 797 { 798 // No action will be taken by default. 799 } 800 801 802 803 /** 804 * Logs a message about the result of processing a modify request. 805 * 806 * @param opContext The operation context for the modify operation. 807 * @param request The modify request that was received. 808 * @param result The result of processing the modify request. 809 */ 810 public void logModifyResponse(final CompletedOperationContext opContext, 811 final ModifyRequest request, 812 final ModifyResult result) 813 { 814 // No action will be taken by default. 815 } 816 817 818 819 /** 820 * Logs a message about a modify DN request received from a client. 821 * 822 * @param opContext The operation context for the modify DN operation. 823 * @param request The modify DN request that was received. 824 */ 825 public void logModifyDNRequest(final OperationContext opContext, 826 final ModifyDNRequest request) 827 { 828 // No action will be taken by default. 829 } 830 831 832 833 /** 834 * Logs a message about a modify DN request that will be forwarded to another 835 * server. 836 * 837 * @param opContext The operation context for the modify DN operation. 838 * @param request The modify DN request that was received. 839 * @param target Information about the server to which the request will 840 * be forwarded. 841 */ 842 public void logModifyDNForward(final OperationContext opContext, 843 final ModifyDNRequest request, 844 final ForwardTarget target) 845 { 846 // No action will be taken by default. 847 } 848 849 850 851 /** 852 * Logs a message about a failure encountered while attempting to forward a 853 * modify DN request to another server. 854 * 855 * @param opContext The operation context for the modify DN operation. 856 * @param request The modify DN request that was received. 857 * @param target Information about the server to which the request was 858 * forwarded. 859 * @param failure The exception that was received when attempting to 860 * forward the request. 861 */ 862 public void logModifyDNForwardFailure(final OperationContext opContext, 863 final ModifyDNRequest request, 864 final ForwardTarget target, 865 final LDAPException failure) 866 { 867 // No action will be taken by default. 868 } 869 870 871 872 /** 873 * Logs a message about the result of processing a modify DN request. 874 * 875 * @param opContext The operation context for the modify DN operation. 876 * @param request The modify DN request that was received. 877 * @param result The result of processing the modify DN request. 878 */ 879 public void logModifyDNResponse(final CompletedOperationContext opContext, 880 final ModifyDNRequest request, 881 final ModifyDNResult result) 882 { 883 // No action will be taken by default. 884 } 885 886 887 888 /** 889 * Logs a message about a search request received from a client. 890 * 891 * @param opContext The operation context for the search operation. 892 * @param request The search request that was received. 893 */ 894 public void logSearchRequest(final OperationContext opContext, 895 final SearchRequest request) 896 { 897 // No action will be taken by default. 898 } 899 900 901 902 /** 903 * Logs a message about a search request that will be forwarded to another 904 * server. 905 * 906 * @param opContext The operation context for the search operation. 907 * @param request The search request that was received. 908 * @param target Information about the server to which the request will 909 * be forwarded. 910 */ 911 public void logSearchForward(final OperationContext opContext, 912 final SearchRequest request, 913 final ForwardTarget target) 914 { 915 // No action will be taken by default. 916 } 917 918 919 920 /** 921 * Logs a message about a failure encountered while attempting to forward a 922 * search request to another server. 923 * 924 * @param opContext The operation context for the search operation. 925 * @param request The search request that was received. 926 * @param target Information about the server to which the request was 927 * forwarded. 928 * @param failure The exception that was received when attempting to 929 * forward the request. 930 */ 931 public void logSearchForwardFailure(final OperationContext opContext, 932 final SearchRequest request, 933 final ForwardTarget target, 934 final LDAPException failure) 935 { 936 // No action will be taken by default. 937 } 938 939 940 941 /** 942 * Logs a message about a search result entry that was returned to the client. 943 * 944 * @param opContext The operation context for the search operation. 945 * @param request The search request that was received. 946 * @param entry The entry that was returned. 947 * @param controls The set of controls included with the entry, or an empty 948 * list if there were none. 949 */ 950 public void logSearchResultEntry(final OperationContext opContext, 951 final SearchRequest request, 952 final Entry entry, 953 final List<Control> controls) 954 { 955 // No action will be taken by default. 956 } 957 958 959 960 /** 961 * Logs a message about a search result reference that was returned to the 962 * client. 963 * 964 * @param opContext The operation context for the search operation. 965 * @param request The search request that was received. 966 * @param referralURLs The referral URLs for the reference that was 967 * returned. 968 * @param controls The set of controls included with the reference, or 969 * an empty list if there were none. 970 */ 971 public void logSearchResultReference(final OperationContext opContext, 972 final SearchRequest request, 973 final List<String> referralURLs, 974 final List<Control> controls) 975 { 976 // No action will be taken by default. 977 } 978 979 980 981 /** 982 * Logs a message about the result of processing a search request. 983 * 984 * @param opContext The operation context for the search operation. 985 * @param request The search request that was received. 986 * @param result The result of processing the search request. 987 */ 988 public void logSearchResultDone( 989 final CompletedSearchOperationContext opContext, 990 final SearchRequest request, final SearchResult result) 991 { 992 // No action will be taken by default. 993 } 994 995 996 997 /** 998 * Logs a message about an unbind request received from a client. 999 * 1000 * @param opContext The operation context for the unbind operation. 1001 * @param request The unbind request that was received. 1002 */ 1003 public void logUnbindRequest(final OperationContext opContext, 1004 final UnbindRequest request) 1005 { 1006 // No action will be taken by default. 1007 } 1008 1009 1010 1011 /** 1012 * Logs a message about an intermediate response that was returned to the 1013 * client. 1014 * 1015 * @param opContext The operation context for the associated 1016 * operation. 1017 * @param intermediateResponse The intermediate response that was returned. 1018 */ 1019 public void logIntermediateResponse(final OperationContext opContext, 1020 final IntermediateResponse intermediateResponse) 1021 { 1022 // No action will be taken by default. 1023 } 1024 }