TextAccessLogPublisher.java revision 4e92e7fefa371645c3e49d585c3394bc180fff65
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Portions Copyright 2006-2007 Sun Microsystems, Inc.
*/
/**
* This class provides the implementation of the access logger used by
* the directory server.
*/
public class TextAccessLogPublisher
{
private TextWriter writer;
/**
* Returns an instance of the text access log publisher that will print
* all messages to the provided writer. This is used to print the messages
* to the console when the server starts up.
*
* @param writer The text writer where the message will be written to.
* @param suppressInternal Indicates whether to suppress internal operations.
* @return The instance of the text error log publisher that will print
* all messages to standard out.
*/
public static TextAccessLogPublisher
{
return startupPublisher;
}
/**
* {@inheritDoc}
*/
public void initializeAccessLogPublisher(
{
try
{
boolean writerAutoFlush =
new MultifileTextWriter("Multifile Text Writer for " +
perm,
"UTF-8",
(int)config.getBufferSize());
// Validate retention and rotation policies.
{
{
}
else
{
}
}
{
{
}
else
{
}
}
if(config.isAsynchronous())
{
writer);
}
else
{
}
}
catch(DirectoryException e)
{
}
catch(IOException e)
{
}
}
/**
* {@inheritDoc}
*/
@Override()
{
// Validate retention and rotation policies.
{
{
return false;
}
}
{
{
return false;
}
}
return true;
}
/**
* {@inheritDoc}
*/
public boolean isConfigurationChangeAcceptable(
{
// Make sure the permission is valid.
try
{
config.getLogFileMode()))
{
}
{
if(logFile.createNewFile())
{
}
}
}
catch(Exception e)
{
return false;
}
}
/**
* {@inheritDoc}
*/
{
// Default result code.
boolean adminActionRequired = false;
try
{
boolean writerAutoFlush =
// Determine the writer we are using. If we were writing asyncronously,
// we need to modify the underlaying writer.
if(writer instanceof AsyncronousTextWriter)
{
}
else
{
}
if(currentWriter instanceof MultifileTextWriter)
{
{
{
}
else
{
}
}
{
{
}
else
{
}
}
{
// The asynronous setting is being turned off.
asyncWriter.shutdown(false);
}
if(!(writer instanceof AsyncronousTextWriter) &&
{
// The asynronous setting is being turned on.
new AsyncronousTextWriter("Asyncronous Text Writer for " +
mfWriter);
}
{
adminActionRequired = true;
}
}
}
catch(Exception e)
{
}
}
/**
* {@inheritDoc}
*/
public void close()
{
if(currentConfig != null)
{
}
}
/**
* Writes a message to the access logger with information about a new client
* connection that has been established, regardless of whether it will be
* immediately terminated.
*
* @param clientConnection The client connection that has been established.
*/
{
{
return;
}
}
/**
* Writes a message to the access logger with information about the
* termination of an existing client connection.
*
* @param clientConnection The client connection that has been terminated.
* @param disconnectReason A generic disconnect reason for the connection
* termination.
* @param message A human-readable message that can provide
* additional information about the disconnect.
*/
{
{
return;
}
{
}
}
/**
* Writes a message to the access logger with information about the abandon
* request associated with the provided abandon operation.
*
* @param abandonOperation The abandon operation containing the information
* to use to log the abandon request.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
}
/**
* Writes a message to the access logger with information about the result
* of the provided abandon operation.
*
* @param abandonOperation The abandon operation containing the information
* to use to log the abandon request.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
{
}
{
}
}
/**
* Writes a message to the access logger with information about the add
* request associated with the provided add operation.
*
* @param addOperation The add operation containing the information to use
* to log the add request.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
}
/**
* Writes a message to the access logger with information about the add
* response associated with the provided add operation.
*
* @param addOperation The add operation containing the information to use
* to log the add response.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
{
}
{
}
if (proxiedAuthDN != null)
{
}
}
/**
* Writes a message to the access logger with information about the bind
* request associated with the provided bind operation.
*
* @param bindOperation The bind operation with the information to use
* to log the bind request.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
switch (bindOperation.getAuthenticationType())
{
case SIMPLE:
break;
case SASL:
break;
default:
break;
}
}
/**
* Writes a message to the access logger with information about the bind
* response associated with the provided bind operation.
*
* @param bindOperation The bind operation containing the information to use
* to log the bind response.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
{
}
if (failureID > 0)
{
if (failureReason != null)
{
}
}
{
}
{
{
{
{
{
}
}
}
}
}
}
/**
* Writes a message to the access logger with information about the compare
* request associated with the provided compare operation.
*
* @param compareOperation The compare operation containing the information
* to use to log the compare request.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
}
/**
* Writes a message to the access logger with information about the compare
* response associated with the provided compare operation.
*
* @param compareOperation The compare operation containing the information
* to use to log the compare response.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
{
}
{
}
if (proxiedAuthDN != null)
{
}
}
/**
* Writes a message to the access logger with information about the delete
* request associated with the provided delete operation.
*
* @param deleteOperation The delete operation with the information to
* use to log the delete request.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
}
/**
* Writes a message to the access logger with information about the delete
* response associated with the provided delete operation.
*
* @param deleteOperation The delete operation containing the information to
* use to log the delete response.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
{
}
{
}
if (proxiedAuthDN != null)
{
}
}
/**
* Writes a message to the access logger with information about the extended
* request associated with the provided extended operation.
*
* @param extendedOperation The extended operation containing the
* information to use to log the extended request.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
}
/**
* Writes a message to the access logger with information about the extended
* response associated with the provided extended operation.
*
* @param extendedOperation The extended operation containing the
* info to use to log the extended response.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
{
}
{
}
{
}
}
/**
* Writes a message to the access logger with information about the modify
* request associated with the provided modify operation.
*
* @param modifyOperation The modify operation containing the information to
* use to log the modify request.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
}
/**
* Writes a message to the access logger with information about the modify
* response associated with the provided modify operation.
*
* @param modifyOperation The modify operation containing the information to
* use to log the modify response.
*/
{
if (connectionID < 0)
{
// this is an internal operation
{
{
return;
}
}
else
{
{
return;
}
}
}
{
}
{
}
if (proxiedAuthDN != null)
{
}
}
/**
* Writes a message to the access logger with information about the modify DN
* request associated with the provided modify DN operation.
*
* @param modifyDNOperation The modify DN operation containing the
* info to use to log the modify DN request.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
if (newSuperior != null)
{
}
}
/**
* Writes a message to the access logger with information about the modify DN
* response associated with the provided modify DN operation.
*
* @param modifyDNOperation The modify DN operation containing the
* information to use to log the modify DN
* response.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
{
}
{
}
if (proxiedAuthDN != null)
{
}
}
/**
* Writes a message to the access logger with information about the search
* request associated with the provided search operation.
*
* @param searchOperation The search operation containing the info to
* use to log the search request.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
{
}
else
{
{
}
}
}
/**
* Writes a message to the access logger with information about the search
* result entry that matches the criteria associated with the provided search
* operation.
*
* @param searchOperation The search operation with which the search result
* entry is associated.
* @param searchEntry The search result entry to be logged.
*/
{
// NYI
}
/**
* Writes a message to the access logger with information about the search
* result reference returned while processing the associated search
* operation.
*
* @param searchOperation The search operation with which the search result
* reference is associated.
* @param searchReference The search result reference to be logged.
*/
{
// NYI
}
/**
* Writes a message to the access logger with information about the
* completion of the provided search operation.
*
* @param searchOperation The search operation containing the information
* to use to log the search result done message.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
{
}
{
}
if (proxiedAuthDN != null)
{
}
}
/**
* Writes a message to the access logger with information about the unbind
* request associated with the provided unbind operation.
*
* @param unbindOperation The unbind operation containing the info to
* use to log the unbind request.
*/
{
if (connectionID < 0)
{
// This is an internal operation.
{
{
return;
}
}
else
{
{
return;
}
}
}
}
/**
* {@inheritDoc}
*/
{
if(currentConfig != null)
{
return currentConfig.dn();
}
else
{
return null;
}
}
}