Create method of Logging to O/S from Container
[aaf/authz.git] / cadi / core / src / main / java / org / onap / aaf / cadi / config / Config.java
index dda4b6c..0de6f4e 100644 (file)
@@ -73,6 +73,7 @@ public class Config {
        public static final String HOSTNAME = "hostname";
        public static final String CADI_PROP_FILES = "cadi_prop_files"; // Additional Properties files (separate with ;)
        public static final String CADI_LOGLEVEL = "cadi_loglevel";
+       public static final String CADI_LOGDIR = "cadi_logdir";
        public static final String CADI_LOGNAME = "cadi_logname";
        public static final String CADI_KEYFILE = "cadi_keyfile";
        public static final String CADI_KEYSTORE = "cadi_keystore";
@@ -82,6 +83,7 @@ public class Config {
        public static final String CADI_LATITUDE = "cadi_latitude";
        public static final String CADI_LONGITUDE = "cadi_longitude";
 
+
        public static final String CADI_KEY_PASSWORD = "cadi_key_password";
        public static final String CADI_TRUSTSTORE = "cadi_truststore";
        public static final String CADI_TRUSTSTORE_PASSWORD = "cadi_truststore_password";
@@ -347,23 +349,26 @@ public class Config {
                                        if(AAF_TAF_CLASS_DEF.equals(aafTafClassName)) { 
                                                try {
                                                        Class<?> aafTafClass = loadClass(access,aafTafClassName);
-               
-                                                       Constructor<?> cstr = aafTafClass.getConstructor(Connector.class,boolean.class,AbsUserCache.class);
-                                                       if(cstr!=null) {
-                                                               if(lur instanceof AbsUserCache) {
-                                                                       aaftaf = (HttpTaf)cstr.newInstance(aafcon,basic_warn,lur);
-                                                               } else {
-                                                                       cstr = aafTafClass.getConstructor(Connector.class,boolean.class);
-                                                                       if(cstr!=null) {
-                                                                               aaftaf = (HttpTaf)cstr.newInstance(aafcon,basic_warn);
+                                                       if(aafTafClass!=null) {
+                                                               Constructor<?> cstr = aafTafClass.getConstructor(Connector.class,boolean.class,AbsUserCache.class);
+                                                               if(cstr!=null) {
+                                                                       if(lur instanceof AbsUserCache) {
+                                                                               aaftaf = (HttpTaf)cstr.newInstance(aafcon,basic_warn,lur);
+                                                                       } else {
+                                                                               cstr = aafTafClass.getConstructor(Connector.class,boolean.class);
+                                                                               if(cstr!=null) {
+                                                                                       aaftaf = (HttpTaf)cstr.newInstance(aafcon,basic_warn);
+                                                                               }
+                                                                       }
+                                                                       if(aaftaf==null) {
+                                                                               access.log(Level.INIT,"ERROR! AAF TAF Failed construction.  NOT Configured");
+                                                                       } else {
+                                                                               access.log(Level.INIT,"AAF TAF Configured to ",aafURL);
+                                                                               // Note: will add later, after all others configured
                                                                        }
                                                                }
-                                                               if(aaftaf==null) {
-                                                                       access.log(Level.INIT,"ERROR! AAF TAF Failed construction.  NOT Configured");
-                                                               } else {
-                                                                       access.log(Level.INIT,"AAF TAF Configured to ",aafURL);
-                                                                       // Note: will add later, after all others configured
-                                                               }
+                                                       } else {
+                                                               access.log(Level.INIT, "There is no AAF TAF class available: %s. AAF TAF not configured.",aafTafClassName);
                                                        }
                                                } catch(Exception e) {
                                                        access.log(Level.INIT,"ERROR! AAF TAF Failed construction.  NOT Configured",e);
@@ -377,7 +382,13 @@ public class Config {
                        /////////////////////////////////////////////////////
                        if(!hasOAuthDirectTAF) {
                                String oauth_token_url = logProp(access,Config.AAF_OAUTH2_TOKEN_URL,null);
-                               if(additionalTafLurs!=null && additionalTafLurs.length>0 && additionalTafLurs[0].getClass().getName().equals("org.osaaf.authz.oauth.OAuthDirectTAF")) {
+                               Class<?> oadtClss;
+                               try {
+                                       oadtClss = Class.forName("org.osaaf.authz.oauth.OAuthDirectTAF");
+                               } catch (ClassNotFoundException e1) {
+                                       oadtClss = null;
+                               }
+                               if(additionalTafLurs!=null && additionalTafLurs.length>0 && (oadtClss!=null && additionalTafLurs[0].getClass().isAssignableFrom(oadtClss))) {
                                        htlist.add((HttpTaf)additionalTafLurs[0]);
                                        String array[] = new String[additionalTafLurs.length-1];
                                        if(array.length>0) {
@@ -425,9 +436,17 @@ public class Config {
                                if(additional instanceof HttpTaf) {
                                        htlist.add((HttpTaf)additional);
                                        access.printf(Level.INIT,"%s Authentication is enabled",additional.getClass().getSimpleName());
-                               } else if(hasOAuthDirectTAF && additional.getClass().getSimpleName().equals("DirectAAFUserPass")) {
-                                       htlist.add(new BasicHttpTaf(access, (CredVal)additional , basic_realm, userExp, basic_warn));
-                                       access.printf(Level.INIT,"Direct BasicAuth Authentication is enabled",additional.getClass().getSimpleName());
+                               } else if(hasOAuthDirectTAF) {
+                                       Class<?> daupCls;
+                                       try {
+                                               daupCls = Class.forName("org.onap.aaf.auth.direct.DirectAAFUserPass");
+                                       } catch (ClassNotFoundException e) {
+                                               daupCls = null;
+                                       }
+                                       if(daupCls != null && additional.getClass().isAssignableFrom(daupCls)) {
+                                               htlist.add(new BasicHttpTaf(access, (CredVal)additional , basic_realm, userExp, basic_warn));
+                                               access.printf(Level.INIT,"Direct BasicAuth Authentication is enabled",additional.getClass().getSimpleName());
+                                       }
                                }
                        }
                }
@@ -539,24 +558,26 @@ public class Config {
                                } else {// There's an AAF_URL... try to configure an AAF
                                        String aafLurClassStr = logProp(access,AAF_LUR_CLASS,"org.osaaf.cadi.aaf.v2_0.AAFLurPerm");
                                        ////////////AAF Lur 2.0 /////////////
-                                       if(aafLurClassStr.startsWith("org.osaaf.cadi.aaf.v2_0")) { 
+                                       if(aafLurClassStr!=null && aafLurClassStr.startsWith("org.osaaf.cadi.aaf.v2_0")) { 
                                                try {
                                                        Object aafcon = loadAAFConnector(si, aafURL);
                                                        if(aafcon==null) {
                                                                access.log(Level.INIT,"AAF LUR class,",aafLurClassStr,"cannot be constructed without valid AAFCon object.");
                                                        } else {
                                                                Class<?> aafAbsAAFCon = loadClass(access, "org.osaaf.cadi.aaf.v2_0.AAFCon");
-                                                               Method mNewLur = aafAbsAAFCon.getMethod("newLur");
-                                                               Object aaflur = mNewLur.invoke(aafcon);
-                       
-                                                               if(aaflur==null) {
-                                                                       access.log(Level.INIT,"ERROR! AAF LUR Failed construction.  NOT Configured");
-                                                               } else {
-                                                                       access.log(Level.INIT,"AAF LUR Configured to ",aafURL);
-                                                                       lurs.add((Lur)aaflur);
-                                                                       String debugIDs = logProp(access,Config.AAF_DEBUG_IDS, null);
-                                                                       if(debugIDs !=null && aaflur instanceof CachingLur) {
-                                                                               ((CachingLur<?>)aaflur).setDebug(debugIDs);
+                                                               if(aafAbsAAFCon!=null) {
+                                                                       Method mNewLur = aafAbsAAFCon.getMethod("newLur");
+                                                                       Object aaflur = mNewLur.invoke(aafcon);
+                               
+                                                                       if(aaflur==null) {
+                                                                               access.log(Level.INIT,"ERROR! AAF LUR Failed construction.  NOT Configured");
+                                                                       } else {
+                                                                               access.log(Level.INIT,"AAF LUR Configured to ",aafURL);
+                                                                               lurs.add((Lur)aaflur);
+                                                                               String debugIDs = logProp(access,Config.AAF_DEBUG_IDS, null);
+                                                                               if(debugIDs !=null && aaflur instanceof CachingLur) {
+                                                                                       ((CachingLur<?>)aaflur).setDebug(debugIDs);
+                                                                               }
                                                                        }
                                                                }
                                                        }
@@ -620,23 +641,25 @@ public class Config {
                                String aafConnector = access.getProperty(AAF_CONNECTOR_CLASS, COM_ATT_CADI_AAF_V2_0_AAF_CON_HTTP);
                        if(COM_ATT_CADI_AAF_V2_0_AAF_CON_HTTP.equals(aafConnector)) {
                                        aafConClass = loadClass(access, COM_ATT_CADI_AAF_V2_0_AAF_CON_HTTP);
-                                       for(Constructor<?> c : aafConClass.getConstructors()) {
-                                               List<Object> lo = new ArrayList<Object>();
-                                               for(Class<?> pc : c.getParameterTypes()) {
-                                                       if(pc.equals(PropAccess.class)) {
-                                                               lo.add(access);
-                                                       } else if(pc.equals(Locator.class)) {
-                                                               lo.add(loadLocator(si, aafURL));
+                                       if(aafConClass!=null) {
+                                               for(Constructor<?> c : aafConClass.getConstructors()) {
+                                                       List<Object> lo = new ArrayList<Object>();
+                                                       for(Class<?> pc : c.getParameterTypes()) {
+                                                               if(pc.equals(PropAccess.class)) {
+                                                                       lo.add(access);
+                                                               } else if(pc.equals(Locator.class)) {
+                                                                       lo.add(loadLocator(si, aafURL));
+                                                               } else {
+                                                                       continue;
+                                                               }
+                                                       }
+                                                       if(c.getParameterTypes().length!=lo.size()) {
+                                                               continue; // back to another Constructor
                                                        } else {
-                                                               continue;
+                                                               aafcon = c.newInstance(lo.toArray());
                                                        }
+                                                       break;
                                                }
-                                               if(c.getParameterTypes().length!=lo.size()) {
-                                                       continue; // back to another Constructor
-                                               } else {
-                                                       aafcon = c.newInstance(lo.toArray());
-                                               }
-                                               break;
                                        }
                                }
                                if(aafcon!=null) {
@@ -677,16 +700,16 @@ public class Config {
        @SuppressWarnings("unchecked")
        public static Locator<URI> loadLocator(SecurityInfoC<HttpURLConnection> si, final String _url) {
                Access access = si.access;
-               String url = _url, replacement;
-               int idxAAF_LOCATE_URL;
-               if((idxAAF_LOCATE_URL=_url.indexOf(AAF_LOCATE_URL_TAG))>0 && ((replacement=access.getProperty(AAF_LOCATE_URL, null))!=null)) {
-                       url = replacement + "/locate" + _url.substring(idxAAF_LOCATE_URL+AAF_LOCATE_URL_TAG.length());
-               }
-
                Locator<URI> locator = null;
-               if(url==null) {
+               if(_url==null) {
                        access.log(Level.INIT,"No URL passed to 'loadLocator'. Disabled");
                } else {
+                       String url = _url, replacement;
+                       int idxAAF_LOCATE_URL;
+                       if((idxAAF_LOCATE_URL=_url.indexOf(AAF_LOCATE_URL_TAG))>0 && ((replacement=access.getProperty(AAF_LOCATE_URL, null))!=null)) {
+                               url = replacement + "/locate" + _url.substring(idxAAF_LOCATE_URL+AAF_LOCATE_URL_TAG.length());
+                       }
+       
                        try {
                                Class<?> lcls = loadClass(access,"org.onap.aaf.cadi.aaf.v2_0.AAFLocator");
                                if(lcls==null) {