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