package org.cagrid.gaards.dorian.idp; import gov.nih.nci.cagrid.common.Utils; import java.util.regex.Matcher; import java.util.regex.Pattern; public class PasswordUtils { public static final String LOWER_CASE_LETTER_REGEX = "[a-z]+"; public static final String CAPITAL_LETTER_REGEX = "[A-Z]+"; public static final String NUMBER_REGEX = "[0-9]+"; public static final String[] SYMBOLS = new String[]{"~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "-", "+", "=", "{", "}", "[", "]", "|", ":", ";", "<", ">", ",", ".", "?"}; public static boolean hasLowerCaseLetter(String password) { return matches(LOWER_CASE_LETTER_REGEX, password); } public static boolean hasSymbol(String password) { for (int i = 0; i < SYMBOLS.length; i++) { if (password.indexOf(SYMBOLS[i]) != -1) { return true; } } return false; } public static boolean hasCapitalLetter(String password) { return matches(CAPITAL_LETTER_REGEX, password); } public static boolean hasNumber(String password) { return matches(NUMBER_REGEX, password); } public static boolean matches(String regex, String password) { if (Utils.clean(password) != null) { Pattern pattern = Pattern.compile(regex); Matcher m = pattern.matcher(password); if (m.find()) { return true; } else { return false; } } else { return false; } } }