X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-cmd%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fcmd%2FAAFcli.java;h=2c084428d052282cf5a17b238e55d2903180b857;hb=1296352d8eafee57f982a4342ad79ada4aa56d28;hp=2fbfa3730c471fc78146155ae175042c33bb292d;hpb=cdf53cfe6903670884e983463375077ea7e8d470;p=aaf%2Fauthz.git diff --git a/auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/AAFcli.java b/auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/AAFcli.java index 2fbfa373..2c084428 100644 --- a/auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/AAFcli.java +++ b/auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/AAFcli.java @@ -4,14 +4,14 @@ * =========================================================================== * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. * - * Modifications Copyright (C) 2018 IBM. + * Modifications Copyright (C) 2019 IBM. * =========================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -90,7 +90,7 @@ public class AAFcli { private static int globalDelay=0; // Create when only have Access - public AAFcli(Access access, Writer wtr, HMangr hman, SecurityInfoC si, SecuritySetter ss) throws APIException, CadiException { + public AAFcli(Access access, Writer wtr, HMangr hman, SecurityInfoC si, SecuritySetter ss) throws APIException { this(access,new AuthzEnv(access.getProperties()),wtr,hman, si,ss); } @@ -124,10 +124,10 @@ public class AAFcli { } public AuthzEnv env() { - return env; - } + return env; + } - public static int timeout() { + public static int timeout() { return TIMEOUT; } @@ -215,8 +215,7 @@ public class AAFcli { } } else if ("expect".equalsIgnoreCase(largs[idx])) { expect.clear(); - if (largs.length > idx++) { - if (!"nothing".equals(largs[idx])) { + if ((largs.length > idx++)&&(!"nothing".equals(largs[idx]))) { for (String str : largs[idx].split(",")) { try { if ("Exception".equalsIgnoreCase(str)) { @@ -229,12 +228,11 @@ public class AAFcli { } } ++idx; - } - } + } continue; // Sleep, typically for reports, to allow DB to update // Milliseconds - + } else if ("sleep".equalsIgnoreCase(largs[idx])) { Integer t = Integer.parseInt(largs[++idx]); pw.println("sleep " + t); @@ -250,7 +248,13 @@ public class AAFcli { pw.println("Press to continue..."); ++idx; // Sonar insists we do something with the string, though it's only a pause. Not very helpful... - String sonar = new BufferedReader(new InputStreamReader(System.in)).readLine(); + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + String sonar; + try { + sonar = br.readLine(); + } finally { + br.close(); + } sonar=""; // this useless code brought to you by Sonar. pw.print(sonar); continue; @@ -294,8 +298,8 @@ public class AAFcli { // Allow Script to indicate if Failure is what is expected } - } - + } + if ("REQUEST".equalsIgnoreCase(largs[idx])) { request=true; ++idx; @@ -332,7 +336,7 @@ public class AAFcli { Thread.sleep((long)(delay+globalDelay)); } } catch (Exception e) { - if (expect.contains(-1)) { + if (expect.contains(-1)) { pw.println(e.getMessage()); ret = -1; } else { @@ -341,7 +345,7 @@ public class AAFcli { } finally { clearSingleLineProperties(); } - rv = expect.isEmpty() ? true : expect.contains(ret); + rv = expect.isEmpty() || expect.contains(ret); if (verbose) { if (rv) { pw.println(); @@ -370,7 +374,8 @@ public class AAFcli { char last = 0; for (int i = 0; i < line.length(); ++i) { char ch; - if (Character.isWhitespace(ch = line.charAt(i))) { + ch = line.charAt(i); + if (Character.isWhitespace(ch)) { if (start || last==',') { continue; // trim } else if (quote != 0) { @@ -411,7 +416,7 @@ public class AAFcli { System.out.println("For instance, C-b means hold ctrl key and press b, M-b means hold alt and press b\n"); System.out.println("Basic Keybindings:"); - System.out.println("\tC-l - clear screen"); + System.out.println("\tC-l - clear screen"); System.out.println("\tC-a - beginning of line"); System.out.println("\tC-e - end of line"); System.out.println("\tC-b - backward character (left arrow also works)"); @@ -436,7 +441,7 @@ public class AAFcli { */ public static void main(String[] args) { int rv = 0; - + try { AAFSSO aafsso = new AAFSSO(args); String noexit = aafsso.access().getProperty("no_exit"); @@ -446,7 +451,7 @@ public class AAFcli { if (aafsso.ok()) { Define.set(access); AuthzEnv env = new AuthzEnv(access); - + Reader rdr = null; boolean exitOnFailure = true; /* @@ -484,15 +489,15 @@ public class AAFcli { sb.append(args[i]); } } - + AAFConHttp aafcon = new AAFConHttp(access); -// +// // SecurityInfoC si = aafcon.securityInfo(); // Locator loc; - + aafsso.setLogDefault(); aafsso.setStdErrDefault(); - + // Note, with AAF Locator, this may not longer be necessary 3/2018 Jonathan if (!aafsso.loginOnly()) { // try { @@ -504,16 +509,16 @@ public class AAFcli { // // Other Access is done writing to StdOut and StdErr, reset Std out // aafsso.setLogDefault(); // } - + TIMEOUT = Integer.parseInt(access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF)); // HMangr hman = new HMangr(access, loc).readTimeout(TIMEOUT).apiVersion(Config.AAF_DEFAULT_API_VERSION); - + if (access.getProperty(Config.AAF_DEFAULT_REALM)==null) { access.setProperty(Config.AAF_DEFAULT_REALM, "people.osaaf.org"); aafsso.addProp(Config.AAF_DEFAULT_REALM, "people.osaaf.org"); } - - AAFcli aafcli = new AAFcli(access,env, new OutputStreamWriter(System.out), + + AAFcli aafcli = new AAFcli(access,env, new OutputStreamWriter(System.out), aafcon.hman(), aafcon.securityInfo(), aafcon.securityInfo().defSS); // new HBasicAuthSS(si,aafsso.user(), access.decrypt(aafsso.enc_pass(),false))); // } @@ -535,18 +540,18 @@ public class AAFcli { System.out.println("Type 'help' for short help or 'help -d' for detailed help with aafcli commands"); System.out.println("Type '?' for help with command line editing"); System.out.println("Type 'q', 'quit', or 'exit' to quit aafcli\n"); - + ConsoleReader reader = new ConsoleReader(); try { reader.setPrompt("aafcli > "); - + String line; while ((line = reader.readLine()) != null) { showDetails = (line.contains("-d")); - + if (line.equalsIgnoreCase("quit") || line.equalsIgnoreCase("q") || line.equalsIgnoreCase("exit")) { break; - } else if (line.equalsIgnoreCase("--help -d") || line.equalsIgnoreCase("help -d") + } else if (line.equalsIgnoreCase("--help -d") || line.equalsIgnoreCase("help -d") || line.equalsIgnoreCase("help")) { line = "--help"; } else if (line.equalsIgnoreCase("cls")) { @@ -569,12 +574,16 @@ public class AAFcli { } } else if (rdr != null) { BufferedReader br = new BufferedReader(rdr); - String line; - while ((line = br.readLine()) != null) { - if (!aafcli.eval(line) && exitOnFailure) { - rv = 1; - break; + try { + String line; + while ((line = br.readLine()) != null) { + if (!aafcli.eval(line) && exitOnFailure) { + rv = 1; + break; + } } + } finally { + br.close(); } } else { // just run the command line aafcli.verbose(false); @@ -583,10 +592,10 @@ public class AAFcli { } rv = aafcli.eval(sb.toString()) ? 0 : 1; } - + } finally { aafcli.close(); - + // Don't close if No Reader, or it's a Reader of Standard In if (rdr != null && !(rdr instanceof InputStreamReader)) { rdr.close(); @@ -620,7 +629,7 @@ public class AAFcli { public boolean isTest() { return AAFcli.isTest; } - + public boolean isDetailed() { return AAFcli.showDetails; }