Sonar Fixes, Formatting
[aaf/authz.git] / auth / auth-certman / src / main / java / org / onap / aaf / auth / cm / validation / CertmanValidator.java
index ea97dd0..eaee6dc 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -22,6 +22,7 @@
 package org.onap.aaf.auth.cm.validation;
 
 import java.util.List;
+import java.util.regex.Pattern;
 
 import org.onap.aaf.auth.dao.cass.ArtiDAO;
 import org.onap.aaf.auth.dao.cass.ArtiDAO.Data;
@@ -30,9 +31,9 @@ import org.onap.aaf.auth.validation.Validator;
 /**
  * Validator
  * Consistently apply content rules for content (incoming)
- * 
- * Note: We restrict content for usability in URLs (because RESTful service), and avoid 
- * issues with Regular Expressions, and other enabling technologies. 
+ *
+ * Note: We restrict content for usability in URLs (because RESTful service), and avoid
+ * issues with Regular Expressions, and other enabling technologies.
  * @author Jonathan
  *
  */
@@ -47,15 +48,21 @@ public class CertmanValidator extends Validator{
     private static final String MUST_HAVE_AT_LEAST = " must have at least ";
     private static final String IS_NULL = " is null.";
     private static final String ARTIFACTS_MUST_HAVE_AT_LEAST = "Artifacts must have at least ";
+    private static final Pattern ALPHA_NUM = Pattern.compile("[a-zA-Z0-9]*");
+
+    private static boolean disallowTmp = true;
+    public static void allowTmp() {
+        disallowTmp=false;
+    }
 
     public CertmanValidator nullBlankMin(String name, List<String> list, int min) {
-        if(list==null) {
+        if (list==null) {
             msg(name + IS_NULL);
         } else {
-            if(list.size()<min) {
+            if (list.size()<min) {
                 msg(name + MUST_HAVE_AT_LEAST + min + ENTR + (min==1?Y:IES));
             } else {
-                for(String s : list) {
+                for (String s : list) {
                     nullOrBlank("List Item",s);
                 }
             }
@@ -64,38 +71,25 @@ public class CertmanValidator extends Validator{
     }
 
     public CertmanValidator artisRequired(List<ArtiDAO.Data> list, int min) {
-        if(list==null) {
+        if (list==null) {
             msg(ARTIFACT_LIST_IS_NULL);
         } else {
-            if(list.size()<min) {
+            if (list.size()<min) {
                 msg(ARTIFACTS_MUST_HAVE_AT_LEAST + min + ENTR + (min==1?Y:IES));
             } else {
-                for(ArtiDAO.Data a : list) {
+                for (ArtiDAO.Data a : list) {
                     allRequired(a);
+                    if(disallowTmp && a.dir!=null && a.dir.startsWith("/tmp")) {
+                        msg("Certificates may not be deployed into /tmp directory (they will be removed at a random time by O/S)");
+                    }
                 }
             }
         }
         return this;
     }
 
-    public CertmanValidator artisKeys(List<ArtiDAO.Data> list, int min) {
-        if(list==null) {
-            msg(ARTIFACT_LIST_IS_NULL);
-        } else {
-            if(list.size()<min) {
-                msg(ARTIFACTS_MUST_HAVE_AT_LEAST + min + ENTR + (min==1?Y:IES));
-            } else {
-                for(ArtiDAO.Data a : list) {
-                    keys(a);
-                }
-            }
-        }
-        return this;
-    }
-
-
     public CertmanValidator keys(ArtiDAO.Data add) {
-        if(add==null) {
+        if (add==null) {
             msg("Artifact is null.");
         } else {
             nullOrBlank(MECHID, add.mechid);
@@ -103,16 +97,17 @@ public class CertmanValidator extends Validator{
         }
         return this;
     }
-    
+
     private CertmanValidator allRequired(Data a) {
-        if(a==null) {
+        if (a==null) {
             msg("Artifact is null.");
         } else {
             nullOrBlank(MECHID, a.mechid);
             nullOrBlank(MACHINE, a.machine);
             nullOrBlank("ca",a.ca);
             nullOrBlank("dir",a.dir);
-            nullOrBlank("os_user",a.os_user);
+               match("NS must be dot separated AlphaNumeric",a.ns,NAME_CHARS);
+            match("O/S User must be AlphaNumeric",a.os_user,ALPHA_NUM);
             // Note: AppName, Notify & Sponsor are currently not required
         }
         return this;