Class SecureFileHandler
- java.lang.Object
-
- java.util.logging.Handler
-
- com.sun.identity.log.handlers.SecureFileHandler
-
public class SecureFileHandler extends Handler
This SecureFileHandler is very much similar to thejava.util.logging.FileHandler . The FileHandler can either write to a specified file, or it can write to a rotating set of files.
For a archiving set of files, as each file reaches the limit ( LogConstants.MAX_FILE_SIZE), it is closed, archived, and a new file opened. Successively older files and named by adding a ".ddMMyyyyHHmmss" to the base filename. The Locking mechanism is much more relaxed(in JDK's FileHandler an exclusive lock is created on the file till the handler is closed which makes reading impossible)
- Version:
- 6.0
- Author:
- rk133022
-
-
Constructor Summary
Constructors Constructor Description SecureFileHandler(String fileName)
Creates a new SecureFileHandler.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
addToCurrentFileList(String oldFileName, String newFileName, String logName)
Add new file name to the file listvoid
close()
Flush any buffered messages and Close all the files.void
flush()
Flush any buffered messages.static Archiver
getArchiver(String logName)
This method takes in a logger name and returns a archiver object corresponding to that logger name.static ArrayList
getCurrentFileList(String logName)
Return the current file list for the logger.static String
getLoggerKeyName()
Return logger key name in associated key storeSecureLogHelper
getSecureLogHelper()
Return secure logger helper instancestatic SecureLogHelper
getSecureLogHelper(String logName)
This method takes in a logger name and returns a helper object corresponding to that logger name.static SecureLogHelper
getSecureLogHelperInst()
Returns SecureLogHelper instancestatic String
getTokenName()
Returns the token name used in the SecureLogHelper object.void
initializeKeyStore()
Initialize logger key storestatic void
initializeVerifier(AMPassword verPass, Object token)
Initialize SecureLog verifiervoid
publish(LogRecord lrecord)
Format and publish a LogRecord.static void
resetCurrentFileList(String logName)
Reset the current file list for the logger.static void
setArchiver(String logName, Archiver archiver)
This method is to set the archiver corresponding to a loggerNamevoid
setEncoding(String encoding)
Set (or change) the character encoding used by this Handler.static void
setLoggerKeyName(String name)
Set logger key name in associated keystorestatic void
setLogPassword(AMPassword logPass, Object token)
Set logger passwordstatic void
setTokenName(String tokenName)
Sets the token name to be used to initialize the SecureLogHelper object.static void
setVerPassword(AMPassword verPass, Object token)
Sets verifier password.-
Methods inherited from class java.util.logging.Handler
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, isLoggable, reportError, setErrorManager, setFilter, setFormatter, setLevel
-
-
-
-
Constructor Detail
-
SecureFileHandler
public SecureFileHandler(String fileName)
Creates a new SecureFileHandler. It takes a string parameter which represents file name. When this constructor is called a new file to be created. Assuming that the fileName logger provides is the timestamped fileName.- Parameters:
fileName
- The filename associate with file handler.
-
-
Method Detail
-
setEncoding
public void setEncoding(String encoding) throws SecurityException, UnsupportedEncodingException
Set (or change) the character encoding used by this Handler. The encoding should be set before any LogRecords are written to the Handler.- Overrides:
setEncoding
in classHandler
- Parameters:
encoding
- The name of a supported character encoding. May be null, to indicate the default platform encoding.- Throws:
SecurityException
- if a security manager exists and if the caller does not have LoggingPermission("control") .UnsupportedEncodingException
- if the named encoding is not supported.
-
close
public void close()
Flush any buffered messages and Close all the files.
-
publish
public void publish(LogRecord lrecord)
Format and publish a LogRecord.This FileHandler is associated with a Formatter, which has to format the LogRecord according to ELF and return back the string formatted as per ELF. This method first checks if the header is already written to the file, if not, gets the header from the Formatter and writes it at the beginning of the file.
-
getArchiver
public static Archiver getArchiver(String logName)
This method takes in a logger name and returns a archiver object corresponding to that logger name. This can also be implemented by keeping the archiver a private instance variable and a getter and setter methods to get/set that private variable.- Parameters:
logName
- a logger name associate with archiver object- Returns:
- a archiver object corresponding to that logger name
-
setArchiver
public static void setArchiver(String logName, Archiver archiver)
This method is to set the archiver corresponding to a loggerName- Parameters:
logName
- the loggerName corresponding to a archiverarchiver
- the archiver corresponding to a loggerName
-
setLogPassword
public static void setLogPassword(AMPassword logPass, Object token)
Set logger password- Parameters:
logPass
- the logger passwordtoken
- AM token
-
setVerPassword
public static void setVerPassword(AMPassword verPass, Object token)
Sets verifier password.- Parameters:
verPass
- the verifier password.token
- AM token
-
getSecureLogHelperInst
public static SecureLogHelper getSecureLogHelperInst()
Returns SecureLogHelper instance- Returns:
- SecureLogHelper instance
-
getSecureLogHelper
public static SecureLogHelper getSecureLogHelper(String logName)
This method takes in a logger name and returns a helper object corresponding to that logger name. This can also be implemented by keeping the helper a private instance variable and a getter and setter methods to get/set that private variable.- Parameters:
logName
- the logger name associate with helper object.- Returns:
- a helper object corresponding to that logger name.
-
initializeVerifier
public static void initializeVerifier(AMPassword verPass, Object token)
Initialize SecureLog verifier- Parameters:
verPass
- verifier passwordtoken
- AM token
-
addToCurrentFileList
public static void addToCurrentFileList(String oldFileName, String newFileName, String logName)
Add new file name to the file list- Parameters:
oldFileName
- old file name already exist.newFileName
- new file name needs to be added to file list.logName
- logger name for this file list.
-
getCurrentFileList
public static ArrayList getCurrentFileList(String logName)
Return the current file list for the logger.- Parameters:
logName
- Associated logger name for this file list.- Returns:
- the current file list for the logger.
-
resetCurrentFileList
public static void resetCurrentFileList(String logName)
Reset the current file list for the logger.- Parameters:
logName
- logName Associated logger name for this file list.
-
initializeKeyStore
public void initializeKeyStore()
Initialize logger key store
-
setTokenName
public static void setTokenName(String tokenName)
Sets the token name to be used to initialize the SecureLogHelper object.- Parameters:
tokenName
- the token name associate with logger key store
-
getTokenName
public static String getTokenName()
Returns the token name used in the SecureLogHelper object.
-
setLoggerKeyName
public static void setLoggerKeyName(String name)
Set logger key name in associated keystore- Parameters:
name
- the name of key in the key store
-
getLoggerKeyName
public static String getLoggerKeyName()
Return logger key name in associated key store- Returns:
- logger key name in associated key store
-
getSecureLogHelper
public SecureLogHelper getSecureLogHelper()
Return secure logger helper instance- Returns:
- secure logger helper instance
-
-