Package com.unboundid.util
Class PasswordReader
- java.lang.Object
-
- com.unboundid.util.PasswordReader
-
@ThreadSafety(level=NOT_THREADSAFE) public final class PasswordReader extends java.lang.Object
This class provides a mechanism for reading a password from the command line in a way that attempts to prevent it from being displayed. If it is available (i.e., Java SE 6 or later), thejava.io.Console.readPassword
method will be used to accomplish this. For Java SE 5 clients, a more primitive approach must be taken, which requires flooding standard output with backspace characters using a high-priority thread. This has only a limited effectiveness, but it is the best option available for older Java versions.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static byte[]
readPassword()
Reads a password from the console as a byte array.static char[]
readPasswordChars()
Reads a password from the console as a character array.void
run()
Deprecated.This method is no longer used.static void
setTestReader(java.io.BufferedReader reader)
Specifies the input stream from which to read the password.static void
setTestReaderLines(java.lang.String... lines)
Specifies the lines that should be used as input when reading the password.
-
-
-
Method Detail
-
readPasswordChars
public static char[] readPasswordChars() throws LDAPException
Reads a password from the console as a character array.- Returns:
- The characters that comprise the password that was read.
- Throws:
LDAPException
- If a problem is encountered while trying to read the password.
-
readPassword
public static byte[] readPassword() throws LDAPException
Reads a password from the console as a byte array.- Returns:
- The characters that comprise the password that was read.
- Throws:
LDAPException
- If a problem is encountered while trying to read the password.
-
run
@Deprecated public void run()
Deprecated.This method is no longer used.This is a legacy method that now does nothing. It was required by a former version of this class when older versions of Java were still supported, and is retained only for the purpose of API backward compatibility.
-
setTestReaderLines
@InternalUseOnly public static void setTestReaderLines(java.lang.String... lines)
Specifies the lines that should be used as input when reading the password. This should only be set when running unit tests, and thesetTestReader(BufferedReader)
method should be called with a value ofnull
before the end of the test to ensure that the password reader is reverted back to its normal behavior.- Parameters:
lines
- The lines of input that should be provided to the password reader instead of actually obtaining them interactively. It must not benull
but may be empty.
-
setTestReader
@InternalUseOnly public static void setTestReader(java.io.BufferedReader reader)
Specifies the input stream from which to read the password. This should only be set when running unit tests, and this method should be called again with a value ofnull
before the end of the test to ensure that the password reader is reverted back to its normal behavior.- Parameters:
reader
- The input stream from which to read the password. It may benull
to obtain the password from the normal means.
-
-