[OOM cert-service-client] Add validation of email, ip and domain name
[oom/platform/cert-service.git] / certServiceClient / src / main / java / org / onap / oom / certservice / client / configuration / validation / csr / CsrEnvsValueValidators.java
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.oom.certservice.client.configuration.validation;
+package org.onap.oom.certservice.client.configuration.validation.csr;
 
 import java.util.Arrays;
 import java.util.Locale;
 import java.util.regex.Pattern;
+import org.apache.commons.validator.routines.DomainValidator;
+import org.apache.commons.validator.routines.EmailValidator;
+import org.apache.commons.validator.routines.InetAddressValidator;
 
-public class BasicValidationFunctions {
+public final class CsrEnvsValueValidators {
 
-    public static boolean isPathValid(String path) {
-        return path.matches("^/|(/[a-zA-Z0-9_-]+)+/?$");
-    }
+    private static final boolean ALLOW_LOCAL_DOMAINS = true;
+
+    private static final String SPECIAL_CHAR_PRESENCE_REGEX = "[~#@*$+%!()?/{}<>\\|_^]";
 
-    public static boolean isAlphaNumeric(String caName) {
-        return caName.matches("^[a-zA-Z0-9]*$");
+    private CsrEnvsValueValidators() {
     }
 
-    public static boolean isSpecialCharPresent(String stringToCheck) {
-        return Pattern.compile("[~#@*$+%!()?/{}<>\\|_^]").matcher(stringToCheck).find();
+    public static boolean isCountryValid(String country) {
+        return Arrays.asList(Locale.getISOCountries()).contains(country);
     }
 
-    public static boolean isPortNumberPresent(String stringToCheck) {
-        return Pattern.compile(":[0-9]{1,5}").matcher(stringToCheck).find();
+    public static boolean isEmailAddressValid(String address) {
+        return EmailValidator.getInstance().isValid(address);
     }
 
-    public static boolean isIpAddressPresent(String stringToCheck) {
-        return Pattern.compile("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}").matcher(stringToCheck).find();
+    public static boolean isIpAddressValid(String address) {
+        return InetAddressValidator.getInstance().isValid(address);
     }
 
-    public static boolean isHttpProtocolsPresent(String stringToCheck) {
-        return Pattern.compile("[h][t][t][p][:][/][/]|[h][t][t][p][s][:][/][/]").matcher(stringToCheck).find();
+    public static boolean isDomainNameValid(String domain) {
+        return DomainValidator.getInstance(ALLOW_LOCAL_DOMAINS).isValid(domain);
     }
 
-    public static boolean isCountryValid(String country) {
-        return Arrays.asList(Locale.getISOCountries()).contains(country);
+    public static boolean isUriValid(String uri) {
+        return UriValidator.isValid(uri);
     }
 
+    public static boolean isSpecialCharPresent(String stringToCheck) {
+        return Pattern.compile(SPECIAL_CHAR_PRESENCE_REGEX).matcher(stringToCheck).find();
+    }
 }