More refinement, Agent.sh
[aaf/authz.git] / cadi / aaf / src / main / java / org / onap / aaf / cadi / sso / AAFSSO.java
index 38d4852..75cddff 100644 (file)
@@ -40,6 +40,7 @@ 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.configure.ArtifactDir;
 import org.onap.aaf.cadi.util.MyConsole;
 import org.onap.aaf.cadi.util.SubStandardConsole;
 import org.onap.aaf.cadi.util.TheConsole;
@@ -134,13 +135,8 @@ public class AAFSSO {
             //    Config.setDefaultRealm(access);
     
             if (!dot_aaf_kf.exists()) {
-                FileOutputStream fos = new FileOutputStream(dot_aaf_kf);
-                try {
-                    fos.write(Symm.keygen());
-                    setReadonly(dot_aaf_kf);
-                } finally {
-                    fos.close();
-                }
+               // This will create, as required, or reuse
+                ArtifactDir.getSymm(dot_aaf_kf);
             }
 
             for (Entry<Object, Object> es : diskprops.entrySet()) {
@@ -183,11 +179,16 @@ public class AAFSSO {
                 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);
+            if (appID!=null) {
+               diskprops.setProperty(Config.AAF_APPID,appID);
+               if( access.getProperty(Config.AAF_APPPASS)==null) {
+                       char[] password = cons.readPassword("Password for %s: ", appID);
+                       if(password.length>0) {
+                               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);
@@ -242,7 +243,7 @@ public class AAFSSO {
                 use_X509 = true;
             } else {
                 use_X509 = false;
-                Symm decryptor = Symm.obtain(dot_aaf_kf);
+                Symm decryptor = ArtifactDir.getSymm(dot_aaf_kf);
                 if (user == null) {
                     if (sso.exists()) {
                         String cm_url = access.getProperty(Config.CM_URL); // SSO might overwrite...
@@ -312,8 +313,21 @@ public class AAFSSO {
                 addProp(Config.AAF_LOCATE_URL, locateUrl);
             }
             
-            access.setProperty(Config.AAF_URL, Defaults.AAF_URL);
-            access.setProperty(Config.CM_URL, Defaults.CM_URL);
+            final String apiVersion = access.getProperty(Config.AAF_API_VERSION, Config.AAF_DEFAULT_API_VERSION);
+            final String aaf_root_ns = access.getProperty(Config.AAF_ROOT_NS);
+            String locateRoot;
+            if(aaf_root_ns==null) {
+               locateRoot=Defaults.AAF_ROOT;
+            } else {
+               locateRoot = Defaults.AAF_LOCATE_CONST + "/%CNS.%" + aaf_root_ns;
+            }
+            if(access.getProperty(Config.AAF_URL)==null) {
+               
+               access.setProperty(Config.AAF_URL, locateRoot+".service:"+apiVersion);
+            }
+            if(access.getProperty(Config.CM_URL)==null) {
+               access.setProperty(Config.CM_URL, locateRoot+".cm:"+apiVersion);
+            }
             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");
@@ -411,7 +425,6 @@ public class AAFSSO {
                     diskprops.store(fos, "AAF Single Signon");
                 } finally {
                     fos.close();
-                    setReadonly(sso);
                 }
             }
             if (sso != null) {