Thursday 22 January 2015

LengthRule


Rule specifies whether password is within a desired length. LengthRule class provides three constructors.

LengthRule()
Creates a new length rule with lengths unset.

LengthRule(int length)
Creates a new length rule with the supplied length.

LengthRule(int minLength, int maxLength) 
Creates a new length rule with specified minLength and maxLength.

import edu.vt.middleware.password.AllowedCharacterRule;
import edu.vt.middleware.password.AlphabeticalSequenceRule;
import edu.vt.middleware.password.DigitCharacterRule;
import edu.vt.middleware.password.LengthRule;
import edu.vt.middleware.password.Password;
import edu.vt.middleware.password.PasswordData;
import edu.vt.middleware.password.PasswordValidator;
import edu.vt.middleware.password.Rule;
import edu.vt.middleware.password.RuleResult;
import java.util.ArrayList;
import java.util.List;

public class PasswordCheck {

    private static PasswordValidator getPasswordValidator(){
        /* Rule for allowed charachters */
        char chars[] = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
                        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
                        'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
                        'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D',
                        'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
                        'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
                        'Y', 'Z', '_', '@', '#', '!'};
        AllowedCharacterRule allowedCharsRule = new AllowedCharacterRule(chars);

        /* Rule for alphabetic sequence */
        AlphabeticalSequenceRule alphabeticalSequenceRule = new AlphabeticalSequenceRule(4, true);

        /* Rule for number of digits to be in password */
        DigitCharacterRule digitCharacterRule = new DigitCharacterRule();

        /* Rule for password length */
        LengthRule lengthRule = new LengthRule(8, 15);
        
        /* Add rules to ruleList */
        List<Rule> ruleList = new ArrayList<Rule>();
        ruleList.add(allowedCharsRule);
        ruleList.add(alphabeticalSequenceRule);
        ruleList.add(digitCharacterRule);
        ruleList.add(lengthRule);

        PasswordValidator validator = new PasswordValidator(ruleList);

        return validator;
    }

    public static boolean isPasswordValid(String password){
        PasswordData passwordData = new PasswordData(new Password(password));
        RuleResult result = getPasswordValidator().validate(passwordData);
        return result.isValid();
    }
    
    public static void main(String args[]){
       System.out.println("Is password valid : " + isPasswordValid("asdfghjkl"));
       System.out.println("Is password valid : " + isPasswordValid("asdfghjkl%$"));
       System.out.println("Is password valid : " + isPasswordValid("xyzabc"));
       System.out.println("Is password valid : " + isPasswordValid("123abc"));
     
       System.out.println("Is password valid : " + isPasswordValid("123abc123"));
    }
}

Output
Is password valid : false
Is password valid : false
Is password valid : false
Is password valid : false
Is password valid : true

Prevoius                                                 Next                                                 Home

No comments:

Post a Comment