]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/util/PasswordStrengthChecker.java
Merge branch 'changePasswordForm'
[gigi.git] / src / org / cacert / gigi / util / PasswordStrengthChecker.java
index efc776ef08da4836d2c30701966b87463a38c776..3e4760bbf2b86c47fd53766fbbe5be89b26e0327 100644 (file)
@@ -2,6 +2,7 @@ package org.cacert.gigi.util;
 
 import java.util.regex.Pattern;
 
+import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.User;
 
 public class PasswordStrengthChecker {
@@ -9,9 +10,11 @@ public class PasswordStrengthChecker {
        static Pattern lower = Pattern.compile("[a-z]");
        static Pattern upper = Pattern.compile("[A-Z]");
        static Pattern whitespace = Pattern.compile("\\s");
-       static Pattern special = Pattern.compile("\\W");
+       static Pattern special = Pattern.compile("(?!\\s)\\W");
+
        private PasswordStrengthChecker() {
        }
+
        private static int checkpwlight(String pw) {
                int points = 0;
                if (pw.length() > 15) {
@@ -43,6 +46,7 @@ public class PasswordStrengthChecker {
                }
                return points;
        }
+
        public static int checkpw(String pw, User u) {
                if (pw == null) {
                        return 0;
@@ -66,6 +70,14 @@ public class PasswordStrengthChecker {
                // TODO dictionary check
                return light;
        }
+
+       public static void assertStrongPassword(String pw, User u) throws GigiApiException {
+               if (checkpw(pw, u) < 3) {
+                       throw new GigiApiException("The Pass Phrase you submitted failed to contain enough"
+                               + " differing characters and/or contained words from" + " your name and/or email address.");
+               }
+       }
+
        private static boolean contained(String pw, String check) {
                if (check == null || check.equals("")) {
                        return false;