import org.onap.aaf.cadi.CadiException;
import org.onap.aaf.cadi.PropAccess;
import org.onap.aaf.cadi.Symm;
+import org.onap.aaf.cadi.aaf.Defaults;
import org.onap.aaf.cadi.config.Config;
import org.onap.aaf.cadi.util.MyConsole;
import org.onap.aaf.cadi.util.SubStandardConsole;
private boolean ok;
public AAFSSO(String[] args) throws IOException, CadiException {
+ this(args,new Properties());
+ }
+
+ public AAFSSO(String[] args, ProcessArgs pa) throws IOException, CadiException {
+ this(args,pa.process(args, new Properties()));
+ }
+
+ public AAFSSO(String[] args, Properties dp) throws IOException, CadiException {
+ stdOutOrig = System.out;
+ stdErrOrig = System.err;
ok = true;
List<String> nargs = parseArgs(args);
- diskprops = new Properties();
+ diskprops = dp;
touchDiskprops = false;
dot_aaf = new File(System.getProperty("user.home") + "/.aaf");
if (!dot_aaf.exists()) {
dot_aaf.mkdirs();
}
- stdOutOrig = System.out;
- stdErrOrig = System.err;
File f = new File(dot_aaf, "sso.out");
os = new PrintStream(new FileOutputStream(f, true));
- System.setOut(os);
+ //System.setOut(os);
System.setErr(os);
sso = new File(dot_aaf, "sso.props");
appID=null;
}
+ if(appID!=null && access.getProperty(Config.AAF_APPPASS)==null) {
+ char[] password = cons.readPassword("Password for %s: ", appID);
+ String app_pass = access.encrypt(new String(password));
+ access.setProperty(Config.AAF_APPPASS,app_pass);
+ diskprops.setProperty(Config.AAF_APPPASS, app_pass);
+ }
+
String keystore=access.getProperty(Config.CADI_KEYSTORE);
String keystore_pass=access.getProperty(Config.CADI_KEYSTORE_PASSWORD);
for (File tsf : dot_aaf.listFiles()) {
name = tsf.getName();
if (!name.contains("trust") && (name.endsWith(".jks") || name.endsWith(".p12"))) {
+ setLogDefault();
select = cons.readLine("Use %s for Identity? (y/n): ",tsf.getName());
if("y".equalsIgnoreCase(select)) {
keystore = tsf.getCanonicalPath();
String locateUrl = access.getProperty(Config.AAF_LOCATE_URL);
if(locateUrl==null) {
- locateUrl=AAFSSO.cons.readLine("AAF Locator FQDN/machine[:port]=https://");
+ locateUrl=AAFSSO.cons.readLine("AAF Locator URL=https://");
if(locateUrl==null || locateUrl.length()==0) {
err = new StringBuilder(Config.AAF_LOCATE_URL);
err.append(" is required.");
ok = false;
return;
} else {
- locateUrl="https://"+locateUrl+"/locate";
+ locateUrl="https://"+locateUrl;
}
access.setProperty(Config.AAF_LOCATE_URL, locateUrl);
addProp(Config.AAF_LOCATE_URL, locateUrl);
}
- String aafUrl = "https://AAF_LOCATE_URL/AAF_NS.service:2.0";
- access.setProperty(Config.AAF_URL, aafUrl);
- access.setProperty(Config.CM_URL, "https://AAF_LOCATE_URL/AAF_NS.cm:2.0");
+ access.setProperty(Config.AAF_URL, Defaults.AAF_URL);
+ access.setProperty(Config.CM_URL, Defaults.CM_URL);
String cadiLatitude = access.getProperty(Config.CADI_LATITUDE);
if(cadiLatitude==null) {
System.out.println("# If you do not know your Global Coordinates, we suggest bing.com/maps");
private List<String> parseArgs(String[] args)
{
- List<String> larg = new ArrayList<String>(args.length);
+ List<String> larg = new ArrayList<>(args.length);
// Cover for bash's need to escape *.. (\\*)
// also, remove SSO if required
public boolean ok() {
return ok;
}
+
+ public static interface ProcessArgs {
+ public Properties process(final String[] args, final Properties props);
+ }
}