Fixes from Regression Tests
[aaf/authz.git] / cadi / core / src / main / java / org / onap / aaf / cadi / PropAccess.java
index 9f4b4b9..0cebaa7 100644 (file)
@@ -3,15 +3,15 @@
  * org.onap.aaf
  * ===========================================================================
  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
- * 
+ *
  * Modifications Copyright (C) 2018 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.
@@ -48,14 +48,7 @@ public class PropAccess implements Access {
     // Sonar says cannot be static... it's ok.  not too many PropAccesses created.
     private final SimpleDateFormat iso8601 = newISO8601();
     private Symm symm;
-               
-    public static SimpleDateFormat newISO8601() {
-       return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
-    }
-
     public static final Level DEFAULT = Level.AUDIT;
-    
-    
     private int level;
     private Properties props;
     private List<String> recursionProtection = null;
@@ -66,7 +59,7 @@ public class PropAccess implements Access {
         logIt = new StreamLogIt(System.out);
         init(null);
     }
-    
+
     /**
      * This Constructor soly exists to instantiate Servlet Context Based Logging that will call "init" later.
      * @param sc
@@ -75,29 +68,29 @@ public class PropAccess implements Access {
         logIt = new StreamLogIt(System.out);
         props = new Properties();
     }
-    
+
     public PropAccess(String ... args) {
         this(System.out,args);
     }
-    
+
     public PropAccess(PrintStream ps, String[] args) {
         logIt = new StreamLogIt(ps==null?System.out:ps);
         init(logIt,args);
     }
-    
+
     public PropAccess(LogIt logit, String[] args) {
         init(logit, args);
     }
-    
+
     public PropAccess(Properties p) {
         this(System.out,p);
     }
-    
+
     public PropAccess(PrintStream ps, Properties p) {
         logIt = new StreamLogIt(ps==null?System.out:ps);
         init(p);
     }
-    
+
     protected void init(final LogIt logIt, final String[] args) {
         this.logIt = logIt;
         Properties nprops=new Properties();
@@ -109,11 +102,15 @@ public class PropAccess implements Access {
         }
         init(nprops);
     }
-    
+
+    public static SimpleDateFormat newISO8601() {
+        return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
+    }
+
     protected synchronized void init(Properties p) {
         // Make sure these two are set before any changes in Logging
         name = "cadi";
-        
+
         props = new Properties();
         // First, load related System Properties
         for (Entry<Object,Object> es : System.getProperties().entrySet()) {
@@ -122,25 +119,25 @@ public class PropAccess implements Access {
                 if (key.startsWith(start)) {
                     props.put(key, es.getValue());
                 }
-            }            
+            }
         }
         // Second, overlay or fill in with Passed in Props
         if (p!=null) {
             props.putAll(p);
         }
-        
+
         // Preset LogLevel
-        String sLevel = props.getProperty(Config.CADI_LOGLEVEL); 
+        String sLevel = props.getProperty(Config.CADI_LOGLEVEL);
         // Third, load any Chained Property Files
         load(props.getProperty(Config.CADI_PROP_FILES));
-        
+
         if(sLevel==null) { // if LogLev wasn't set before, check again after Chained Load
-               sLevel = props.getProperty(Config.CADI_LOGLEVEL); 
-               if (sLevel==null) {
-                       level=DEFAULT.maskOf();
-               } else {
-                   level=Level.valueOf(sLevel).maskOf(); 
-               }
+            sLevel = props.getProperty(Config.CADI_LOGLEVEL);
+            if (sLevel==null) {
+                level=DEFAULT.maskOf();
+            } else {
+                level=Level.valueOf(sLevel).maskOf();
+            }
         }
         // Setup local Symmetrical key encryption
         if (symm==null) {
@@ -152,21 +149,21 @@ public class PropAccess implements Access {
                 System.exit(1);
             }
         }
-        
+
         name = props.getProperty(Config.CADI_LOGNAME, name);
-        
+
         SecurityInfo.setHTTPProtocols(this);
-        
+
     }
-    
-   
+
+
     private void load(String cadi_prop_files) {
         if (cadi_prop_files==null) {
             return;
         }
         String prevKeyFile = props.getProperty(Config.CADI_KEYFILE);
 
-        
+
         for(String filename : Split.splitTrim(File.pathSeparatorChar, cadi_prop_files)) {
             Properties fileProps = new Properties();
             File file = new File(filename);
@@ -179,15 +176,15 @@ public class PropAccess implements Access {
                         // Only load props from recursion which are not already in props
                         // meaning top Property file takes precedence
                         for(Entry<Object, Object> es : fileProps.entrySet()) {
-                               if(props.get(es.getKey())==null) {
-                                       String key = es.getKey().toString();
-                                       String value = es.getValue().toString();
-                                       props.put(key, value);
-                                       if(key.contains("pass")) {
-                                               value = "XXXXXXX";
-                                       }
-                                       printf(Level.DEBUG,"  %s=%s",key,value);
-                               }
+                            if(props.get(es.getKey())==null) {
+                                String key = es.getKey().toString();
+                                String value = es.getValue().toString();
+                                props.put(key, value);
+                                if(key.contains("pass")) {
+                                    value = "vi XX";
+                                }
+                                printf(Level.DEBUG,"  %s=%s",key,value);
+                            }
                         }
                         // Recursively Load
                         String chainProp = fileProps.getProperty(Config.CADI_PROP_FILES);
@@ -211,8 +208,8 @@ public class PropAccess implements Access {
                 printf(Level.WARN,"Warning: recursive CADI Property %s does not exist",file.getAbsolutePath());
             }
         }
-        
-        // Trim 
+
+        // Trim
         for (Entry<Object, Object> es : props.entrySet()) {
             Object value = es.getValue();
             if (value instanceof String) {
@@ -240,7 +237,7 @@ public class PropAccess implements Access {
 
             prevKeyFile=newKeyFile;
         }
-        
+
         String loglevel = props.getProperty(Config.CADI_LOGLEVEL);
         if (loglevel!=null) {
             try {
@@ -250,7 +247,7 @@ public class PropAccess implements Access {
             }
         }
     }
-    
+
     @Override
     public void load(InputStream is) throws IOException {
         props.load(is);
@@ -267,69 +264,69 @@ public class PropAccess implements Access {
     public StringBuilder buildMsg(Level level, Object[] elements) {
         return buildMsg(name,iso8601,level,elements);
     }
-    
+
     /*
      * Need to pass in DateFormat per thread, because not marked as thread safe
      */
     public static StringBuilder buildMsg(final String name, final DateFormat sdf, Level level, Object[] elements) {
-       final StringBuilder sb;
+        final StringBuilder sb;
         int end = elements.length;
-       if(sdf==null) {
-               sb = new StringBuilder();
-               write(true,sb,elements);
-       } else {
-               sb = new StringBuilder(
-                               sdf.format(new Date())
-                               );
+        if(sdf==null) {
+            sb = new StringBuilder();
+            write(true,sb,elements);
+        } else {
+            sb = new StringBuilder(
+                    sdf.format(new Date())
+                    );
             sb.append(' ');
             sb.append(level.name());
             sb.append(" [");
             sb.append(name);
-               if (end<=0) {
-                   sb.append("] ");
-               } else {
-                   int idx = 0;
-                   if(elements[idx]!=null  && 
-                       elements[idx] instanceof Integer) {
-                       sb.append('-');
-                       sb.append(elements[idx]);
-                       ++idx;
-                   }
-                   sb.append("] ");
-                   write(true,sb,elements);
-               }
-       }
+            if (end<=0) {
+                sb.append("] ");
+            } else {
+                int idx = 0;
+                if(elements[idx]!=null  &&
+                    elements[idx] instanceof Integer) {
+                    sb.append('-');
+                    sb.append(elements[idx]);
+                    ++idx;
+                }
+                sb.append("] ");
+                write(true,sb,elements);
+            }
+        }
         return sb;
     }
-    
+
     private static boolean write(boolean first, StringBuilder sb, Object[] elements) {
-       String s;
+        String s;
         for (Object o : elements) {
             if (o!=null) {
-               if(o.getClass().isArray()) {
-                       first = write(first,sb,(Object[])o);
-               } else if(o instanceof Throwable) {
-                       ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                       PrintStream ps = new PrintStream(baos);
-                       ((Throwable)o).printStackTrace(ps);
-                       sb.append(baos.toString());
-               } else {
-                       s=o.toString();
-                       if (first) {
-                           first = false;
-                       } else {
-                           int l = s.length();
-                           if (l>0)    {
-                               switch(s.charAt(l-1)) {
-                                   case ' ':
-                                       break;
-                                   default:
-                                       sb.append(' ');
-                               }
-                           }
-                       }
-                       sb.append(s);
-               }
+                if(o.getClass().isArray()) {
+                    first = write(first,sb,(Object[])o);
+                } else if(o instanceof Throwable) {
+                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                    PrintStream ps = new PrintStream(baos);
+                    ((Throwable)o).printStackTrace(ps);
+                    sb.append(baos.toString());
+                } else {
+                    s=o.toString();
+                    if (first) {
+                        first = false;
+                    } else {
+                        int l = s.length();
+                        if (l>0)    {
+                            switch(s.charAt(l-1)) {
+                                case ' ':
+                                    break;
+                                default:
+                                    sb.append(' ');
+                            }
+                        }
+                    }
+                    sb.append(s);
+                }
             }
         }
         return first;
@@ -337,10 +334,10 @@ public class PropAccess implements Access {
 
     @Override
     public void log(Exception e, Object... elements) {
-       StringWriter sw = new StringWriter();
-       PrintWriter pw = new PrintWriter(sw);
-       pw.println();
-       e.printStackTrace(pw);
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = new PrintWriter(sw);
+        pw.println();
+        e.printStackTrace(pw);
         log(Level.ERROR,elements,sw.toString());
     }
 
@@ -377,7 +374,7 @@ public class PropAccess implements Access {
             ? symm.depass(encrypted)
             : encrypted;
     }
-    
+
     public String encrypt(String unencrypted) throws IOException {
         return Symm.ENC+symm.enpass(unencrypted);
     }
@@ -388,7 +385,7 @@ public class PropAccess implements Access {
     public String getProperty(String tag) {
         return props.getProperty(tag);
     }
-    
+
 
     public Properties getProperties() {
         return props;
@@ -413,10 +410,10 @@ public class PropAccess implements Access {
     public interface LogIt {
         public void push(Level level, Object ... elements) ;
     }
-    
+
     private class StreamLogIt implements LogIt {
         private PrintStream ps;
-        
+
         public StreamLogIt(PrintStream ps) {
             this.ps = ps;
         }
@@ -436,6 +433,6 @@ public class PropAccess implements Access {
     }
 
     public String toString() {
-       return props.toString();
+        return props.toString();
     }
 }