Author: rmeggins
Update of /cvs/dirsec/console/src/com/netscape/management/client/console In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14572/bug442187/src/com/netscape/management/client/console
Modified Files: Console.java Log Message: Resolves: bug 442187 Description: [PATCH] support for providing console password in STDIN Fix Description: Add support for -w - to read password from stdin, and add a new -y argument to read the password from a password file.
Index: Console.java =================================================================== RCS file: /cvs/dirsec/console/src/com/netscape/management/client/console/Console.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- Console.java 7 Dec 2007 20:44:38 -0000 1.12 +++ Console.java 23 Jun 2008 23:03:05 -0000 1.13 @@ -1515,7 +1515,7 @@ */
static public void main(String argv[]) { - GetOpt opt = new GetOpt("h:a:A:f:l:u:w:s:D:x:", argv); + GetOpt opt = new GetOpt("h:a:A:f:l:u:w:y:s:D:x:", argv);
if (opt.hasOption('f')) { String outFile = opt.getOptionParam('f'); @@ -1594,6 +1594,10 @@ System.err.println(" -f <file> capture stderr and stdout to <file> (like Unix tee command)"); System.err.println(" -s server DN (cn=...) or instance ID (e.g. slapd-host)"); System.err.println(" -x extra options (javalaf,nowinpos,nologo)"); + System.err.println(" -u username"); + System.err.println(" -w password"); + System.err.println(" -w - (read password from standard input)"); + System.err.println(" -y password_file (read password from a file)"); System.err.println("\nExample: Console -a https://hostname:10021 -l en"); waitForKeyPress(); // allow the user to read the msg on Win NT System.exit(0); @@ -1632,7 +1636,34 @@ String password = null; if (opt.hasOption('w')) { password = opt.getOptionParam('w'); + // GetOpt works in such a twisted way that "-" argument values + // result in null values received: + if (password == null || password.equals("-")) { + try { + password = (new BufferedReader(new InputStreamReader( + System.in))).readLine(); + } catch (IOException e) { + System.err + .println("Problem reading password from standard input " + + e.getMessage()); + } + } } + + if (opt.hasOption('y')) { + String passwdFile = opt.getOptionParam('y'); + try { + BufferedReader br = new BufferedReader(new FileReader(passwdFile)); + password = br.readLine(); + br.close(); + } catch (FileNotFoundException e) { + System.err.println("Password file not found: " + e.getMessage()); + } catch (IOException e) { + System.err.println("Problem reading from password file: " + e.getMessage()); + } + } + +
_console = new Console(sAdminURL, localAdminURL, sLang, host, uid, password); return;
389-commits@lists.fedoraproject.org