Passay — Обзор
Passay — это библиотека для генерации и проверки паролей на основе Java. Он предоставляет полный список функций для проверки / генерации паролей и легко настраивается.
Passay Компоненты
Passay API имеет 3 основных компонента.
-
Правило — одно или несколько правил, которые определяют набор правил политики паролей.
-
PasswordValidator — компонент-валидатор, который проверяет пароль по заданному набору правил.
-
PasswordGenerator — компонент генератора, который создает пароли для удовлетворения заданному набору правил.
Правило — одно или несколько правил, которые определяют набор правил политики паролей.
PasswordValidator — компонент-валидатор, который проверяет пароль по заданному набору правил.
PasswordGenerator — компонент генератора, который создает пароли для удовлетворения заданному набору правил.
Обзор правил
Правила являются фундаментом для проверки и генерации пароля. Есть две широкие категории правил:
-
Положительное совпадение требует, чтобы пароли удовлетворяли правилу.
-
Отрицательное совпадение отклоняет пароли, которые удовлетворяют правилу.
Положительное совпадение требует, чтобы пароли удовлетворяли правилу.
Отрицательное совпадение отклоняет пароли, которые удовлетворяют правилу.
Характеристики
Ниже приведены некоторые функции, которые предоставляет библиотека Passay.
-
Проверка пароля — библиотека Passay помогает в применении политики паролей путем проверки паролей по настраиваемому набору правил. Он имеет богатый набор существующих правил для распространенных вариантов использования. Для дополнительных случаев он предоставляет простой интерфейс правила для реализации пользовательского правила.
-
Генерация паролей — предоставляет настраиваемый набор правил, который также может использоваться для генерации паролей.
-
Инструменты командной строки — предоставляет инструменты для автоматизации применения политики паролей.
-
удобно — прост в использовании.
-
Расширяемый — все компоненты Passay являются расширяемыми.
-
Поддерживает интернализацию — компоненты Passay готовы к интернационализации.
Проверка пароля — библиотека Passay помогает в применении политики паролей путем проверки паролей по настраиваемому набору правил. Он имеет богатый набор существующих правил для распространенных вариантов использования. Для дополнительных случаев он предоставляет простой интерфейс правила для реализации пользовательского правила.
Генерация паролей — предоставляет настраиваемый набор правил, который также может использоваться для генерации паролей.
Инструменты командной строки — предоставляет инструменты для автоматизации применения политики паролей.
удобно — прост в использовании.
Расширяемый — все компоненты Passay являются расширяемыми.
Поддерживает интернализацию — компоненты Passay готовы к интернационализации.
Passay — Настройка среды
Настройка локальной среды
Если вы все еще хотите настроить свою среду для языка программирования Java, то в этом разделе вы узнаете, как загрузить и настроить Java на вашем компьютере. Пожалуйста, следуйте инструкциям ниже, чтобы настроить среду.
Java SE находится в свободном доступе по ссылке Скачать Java . Таким образом, вы загружаете версию, основанную на вашей операционной системе.
Следуйте инструкциям для загрузки Java и запуска .exe для установки Java на вашем компьютере. После того, как вы установили Java на свой компьютер, вам нужно будет установить переменные окружения, чтобы они указывали на правильные каталоги установки —
Настройка пути для Windows 2000 / XP
Мы предполагаем, что вы установили Java в каталог c: \ Program Files \ java \ jdk —
-
Щелкните правой кнопкой мыши «Мой компьютер» и выберите «Свойства».
-
Нажмите кнопку «Переменные среды» на вкладке «Дополнительно».
-
Теперь измените переменную Path, чтобы она также содержала путь к исполняемому файлу Java. Например, если в настоящий момент путь задан как «C: \ WINDOWS \ SYSTEM32», измените ваш путь на «C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin».
Щелкните правой кнопкой мыши «Мой компьютер» и выберите «Свойства».
Нажмите кнопку «Переменные среды» на вкладке «Дополнительно».
Теперь измените переменную Path, чтобы она также содержала путь к исполняемому файлу Java. Например, если в настоящий момент путь задан как «C: \ WINDOWS \ SYSTEM32», измените ваш путь на «C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin».
Настройка пути для Windows 95/98 / ME
Мы предполагаем, что вы установили Java в каталог c: \ Program Files \ java \ jdk —
-
Отредактируйте файл «C: \ autoexec.bat» и добавьте в конце следующую строку: «SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin»
Отредактируйте файл «C: \ autoexec.bat» и добавьте в конце следующую строку: «SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin»
Настройка пути для Linux, UNIX, Solaris, FreeBSD
Переменная среды PATH должна указывать на то, где установлены двоичные файлы Java. Обратитесь к документации по вашей оболочке, если у вас возникли проблемы с этим.
Например, если вы используете bash в качестве оболочки, вы добавили бы следующую строку в конец вашего .bashrc: export PATH = / path / to / java: $ PATH ‘
Популярные редакторы Java
Для написания ваших программ на Java вам нужен текстовый редактор. Есть много сложных IDE, доступных на рынке. Но сейчас вы можете рассмотреть один из следующих —
-
Блокнот — на компьютере с Windows вы можете использовать любой простой текстовый редактор, например Блокнот (рекомендуется для этого урока), TextPad.
-
Netbeans — это Java IDE с открытым исходным кодом, который можно загрузить по адресу https://www.netbeans.org/index.html .
-
Eclipse — это также Java IDE, разработанная сообществом открытого исходного кода eclipse, которую можно скачать по адресу https://www.eclipse.org/ .
Блокнот — на компьютере с Windows вы можете использовать любой простой текстовый редактор, например Блокнот (рекомендуется для этого урока), TextPad.
Netbeans — это Java IDE с открытым исходным кодом, который можно загрузить по адресу https://www.netbeans.org/index.html .
Eclipse — это также Java IDE, разработанная сообществом открытого исходного кода eclipse, которую можно скачать по адресу https://www.eclipse.org/ .
Скачать Passay Archive
Загрузите последнюю версию файла jar Passay из репозитория Maven . В этом руководстве файл passay-1.4.0.jar загружается и копируется в папку C: \> passay.
Операционные системы | Название архива |
---|---|
Windows | passay-1.4.0.jar |
Linux | passay-1.4.0.jar |
макинтош | passay-1.4.0.jar |
Установить Passay Environment
Установите переменную среды PASSAY, чтобы она указывала на местоположение базовой директории, где на вашем компьютере хранится файл Passay jar. Предполагается, что мы извлекли passay-1.4.0.jar в папку Passay в различных операционных системах следующим образом.
Операционные системы | Выход |
---|---|
Windows | Установите переменную окружения PASSAY в C: \ Passay |
Linux | PASSAY export = / usr / local / Passay |
макинтош | экспорт PASSAY = / Библиотека / Passay |
Установить переменную CLASSPATH
Задайте переменную среды CLASSPATH, чтобы она указывала на расположение файла Passay jar. Предполагается, что вы сохранили passay-1.4.0.jar в папке Passay в различных операционных системах следующим образом.
Операционные системы | Выход |
---|---|
Windows | Задайте для переменной среды CLASSPATH значение% CLASSPATH%;% Passay% \ passay-1.4.0.jar;.; |
Linux | export CLASSPATH = $ CLASSPATH: $ PASSAY / passay-1.4.0.jar :. |
макинтош | export CLASSPATH = $ CLASSPATH: $ PASSAY / passay-1.4.0.jar :. |
Passay — проверка пароля
Типичная политика паролей содержит набор правил для проверки пароля, если он соответствует правилам организации. Рассмотрим следующую политику:
-
Длина пароля должна быть от 8 до 16 символов.
-
Пароль не должен содержать пробелов.
-
Пароль должен содержать каждый из следующих символов: верхний, нижний, цифра и символ.
Длина пароля должна быть от 8 до 16 символов.
Пароль не должен содержать пробелов.
Пароль должен содержать каждый из следующих символов: верхний, нижний, цифра и символ.
пример
В приведенном ниже примере показана проверка пароля в соответствии с вышеуказанной политикой с использованием библиотеки Passay.
import java.util.ArrayList; import java.util.List; import org.passay.CharacterRule; import org.passay.EnglishCharacterData; import org.passay.LengthRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.Rule; import org.passay.RuleResult; import org.passay.WhitespaceRule; public class PassayExample { public static void main(String[] args) { List<Rule> rules = new ArrayList<>(); //Rule 1: Password length should be in between //8 and 16 characters rules.add(new LengthRule(8, 16)); //Rule 2: No whitespace allowed rules.add(new WhitespaceRule()); //Rule 3.a: At least one Upper-case character rules.add(new CharacterRule(EnglishCharacterData.UpperCase, 1)); //Rule 3.b: At least one Lower-case character rules.add(new CharacterRule(EnglishCharacterData.LowerCase, 1)); //Rule 3.c: At least one digit rules.add(new CharacterRule(EnglishCharacterData.Digit, 1)); //Rule 3.d: At least one special character rules.add(new CharacterRule(EnglishCharacterData.Special, 1)); PasswordValidator validator = new PasswordValidator(rules); PasswordData password = new PasswordData("Microsoft@123"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); } else { System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Password validated.
Passay — Индивидуальные сообщения
Библиотека Passay предоставляет API-интерфейс MessageResolver для переопределения сообщений по умолчанию, используемых валидатором. Он может указывать путь к файлу пользовательских свойств и использовать стандартные ключи для переопределения требуемого сообщения.
пример
В приведенном ниже примере показана проверка пароля и показ пользовательского сообщения с использованием библиотеки Passay.
messages.properties
INSUFFICIENT_UPPERCASE=Password missing at least %1$s uppercase characters.
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.Properties; import org.passay.CharacterRule; import org.passay.EnglishCharacterData; import org.passay.LengthRule; import org.passay.MessageResolver; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.PropertiesMessageResolver; import org.passay.Rule; import org.passay.RuleResult; import org.passay.WhitespaceRule; public class PassayExample { public static void main(String[] args) throws FileNotFoundException, IOException { List<Rule> rules = new ArrayList<>(); rules.add(new LengthRule(8, 16)); rules.add(new WhitespaceRule()); rules.add(new CharacterRule(EnglishCharacterData.UpperCase, 1)); rules.add(new CharacterRule(EnglishCharacterData.LowerCase, 1)); rules.add(new CharacterRule(EnglishCharacterData.Digit, 1)); rules.add(new CharacterRule(EnglishCharacterData.Special, 1)); Properties props = new Properties(); props.load(new FileInputStream("E:/Test/messages.properties")); MessageResolver resolver = new PropertiesMessageResolver(props); PasswordValidator validator = new PasswordValidator(resolver, rules); PasswordData password = new PasswordData("microsoft@123"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); } else { System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Invalid Password: [Password missing at least 1 uppercase characters.]
Passay — M из N правил
Много раз политика паролей требовала соответствия минимальным правилам из данных правил, таких как пароль, должен соответствовать по крайней мере M из N правил. Рассмотрим следующую политику.
-
Длина пароля должна быть от 8 до 16 символов.
-
Пароль не должен содержать пробелов.
-
Пароль должен содержать как минимум три следующих элемента: верхний, нижний, цифра или символ.
Длина пароля должна быть от 8 до 16 символов.
Пароль не должен содержать пробелов.
Пароль должен содержать как минимум три следующих элемента: верхний, нижний, цифра или символ.
пример
В приведенном ниже примере показана проверка пароля в соответствии с вышеуказанной политикой с использованием библиотеки Passay.
import java.io.FileNotFoundException; import java.io.IOException; import org.passay.CharacterCharacteristicsRule; import org.passay.CharacterRule; import org.passay.EnglishCharacterData; import org.passay.LengthRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.Rule; import org.passay.RuleResult; import org.passay.WhitespaceRule; public class PassayExample { public static void main(String[] args) throws FileNotFoundException, IOException { //Rule 1: Password length should be in between //8 and 16 characters Rule rule1 = new LengthRule(8, 16); //Rule 2: No whitespace allowed Rule rule2 = new WhitespaceRule(); CharacterCharacteristicsRule rule3 = new CharacterCharacteristicsRule(); //M - Mandatory characters count rule3.setNumberOfCharacteristics(3); //Rule 3.a: One Upper-case character rule3.getRules().add(new CharacterRule(EnglishCharacterData.UpperCase, 1)); //Rule 3.b: One Lower-case character rule3.getRules().add(new CharacterRule(EnglishCharacterData.LowerCase, 1)); //Rule 3.c: One digit rule3.getRules().add(new CharacterRule(EnglishCharacterData.Digit, 1)); //Rule 3.d: One special character rule3.getRules().add(new CharacterRule(EnglishCharacterData.Special, 1)); PasswordValidator validator = new PasswordValidator(rule1, rule2, rule3); PasswordData password = new PasswordData("microsoft@123"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); } else { System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Password validated.
Passay — генерация пароля
PasswordGenerator помогает в создании пароля с использованием данной политики. Рассмотрим следующую политику:
-
Длина пароля должна быть 8 символов.
-
Пароль должен содержать каждый из следующих символов: верхний, нижний, цифра и символ.
Длина пароля должна быть 8 символов.
Пароль должен содержать каждый из следующих символов: верхний, нижний, цифра и символ.
пример
В приведенном ниже примере показано, как с помощью библиотеки Passay создать пароль против вышеуказанной политики.
import org.passay.CharacterRule; import org.passay.EnglishCharacterData; import org.passay.PasswordGenerator; public class PassayExample { public static void main(String[] args) { CharacterRule alphabets = new CharacterRule(EnglishCharacterData.Alphabetical); CharacterRule digits = new CharacterRule(EnglishCharacterData.Digit); CharacterRule special = new CharacterRule(EnglishCharacterData.Special); PasswordGenerator passwordGenerator = new PasswordGenerator(); String password = passwordGenerator.generatePassword(8, alphabets, digits, special); System.out.println(password); } }
Выход
?\DE~@c3
Passay — AllowedCharacterRule
AllowedCharacterRule позволяет указать символы, которые может содержать пароль. Рассмотрим следующий пример.
пример
В приведенном ниже примере показана проверка пароля в соответствии с вышеуказанной политикой с использованием библиотеки Passay.
import org.passay.AllowedCharacterRule; import org.passay.LengthRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.Rule; import org.passay.RuleResult; public class PassayExample { public static void main(String[] args) { //Rule: Password should contains only a, b and c Rule rule1 = new AllowedCharacterRule(new char[] {'a', 'b', 'c'}); //8 and 16 characters Rule rule2 = new LengthRule(8, 16); PasswordValidator validator = new PasswordValidator(rule1, rule2); PasswordData password = new PasswordData("abcabcab1"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); } else { System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Invalid Password: [Password contains the illegal character '1'.]
Passay — AllowedRegexRule
AllowedRegexRule позволяет указать обычный шаблон, которому должен соответствовать пароль. Рассмотрим следующий пример.
пример
В приведенном ниже примере показана проверка пароля в соответствии с вышеуказанной политикой с использованием библиотеки Passay.
import org.passay.AllowedRegexRule; import org.passay.LengthRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.Rule; import org.passay.RuleResult; public class PassayExample { public static void main(String[] args) { //Rule: Password should contains alphabets only Rule rule1 = new AllowedRegexRule("^[A-Za-z]+$"); //8 and 16 characters Rule rule2 = new LengthRule(8, 16); PasswordValidator validator = new PasswordValidator(rule1, rule2); PasswordData password = new PasswordData("microsoft@123"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); } else { System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Invalid Password: [Password must match pattern '^[A-Za-z]+$'.]
Passay — CharacterRule
CharacterRule помогает определить набор символов и минимум нет. символов, необходимых в пароле.
пример
В приведенном ниже примере показана проверка пароля в соответствии с вышеуказанной политикой с использованием библиотеки Passay.
import java.util.ArrayList; import java.util.List; import org.passay.CharacterRule; import org.passay.EnglishCharacterData; import org.passay.LengthRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.Rule; import org.passay.RuleResult; import org.passay.WhitespaceRule; public class PassayExample { public static void main(String[] args) { List<Rule> rules = new ArrayList<>(); //Rule 1: Password length should be in between //8 and 16 characters rules.add(new LengthRule(8, 16)); //Rule 2: No whitespace allowed rules.add(new WhitespaceRule()); //Rule 3.a: At least one Upper-case character rules.add(new CharacterRule(EnglishCharacterData.UpperCase, 1)); //Rule 3.b: At least one Lower-case character rules.add(new CharacterRule(EnglishCharacterData.LowerCase, 1)); //Rule 3.c: At least one digit rules.add(new CharacterRule(EnglishCharacterData.Digit, 1)); //Rule 3.d: At least one special character rules.add(new CharacterRule(EnglishCharacterData.Special, 1)); PasswordValidator validator = new PasswordValidator(rules); PasswordData password = new PasswordData("Microsoft@123"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); } else { System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Password validated.
Passay — LengthRule
LengthRule помогает определить минимальную и максимальную длину пароля.
пример
В приведенном ниже примере показана проверка пароля в соответствии с вышеуказанной политикой с использованием библиотеки Passay.
import java.util.ArrayList; import java.util.List; import org.passay.CharacterRule; import org.passay.EnglishCharacterData; import org.passay.LengthRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.Rule; import org.passay.RuleResult; import org.passay.WhitespaceRule; public class PassayExample { public static void main(String[] args) { List<Rule> rules = new ArrayList<>(); //Rule 1: Password length should be in between //8 and 16 characters rules.add(new LengthRule(8, 16)); //Rule 2: No whitespace allowed rules.add(new WhitespaceRule()); //Rule 3.a: At least one Upper-case character rules.add(new CharacterRule(EnglishCharacterData.UpperCase, 1)); //Rule 3.b: At least one Lower-case character rules.add(new CharacterRule(EnglishCharacterData.LowerCase, 1)); //Rule 3.c: At least one digit rules.add(new CharacterRule(EnglishCharacterData.Digit, 1)); //Rule 3.d: At least one special character rules.add(new CharacterRule(EnglishCharacterData.Special, 1)); PasswordValidator validator = new PasswordValidator(rules); PasswordData password = new PasswordData("Microsoft@123"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); }else{ System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Password validated.
Passay — CharacterCharacteristicsRule
CharacterCharacteristicsRule помогает определить, удовлетворяет ли пароль заданным N определенным правилам или нет.
пример
В приведенном ниже примере показана проверка пароля в соответствии с вышеуказанной политикой с использованием библиотеки Passay.
import java.io.FileNotFoundException; import java.io.IOException; import org.passay.CharacterCharacteristicsRule; import org.passay.CharacterRule; import org.passay.EnglishCharacterData; import org.passay.LengthRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.Rule; import org.passay.RuleResult; import org.passay.WhitespaceRule; public class PassayExample { public static void main(String[] args) throws FileNotFoundException, IOException { //Rule 1: Password length should be in between //8 and 16 characters Rule rule1 = new LengthRule(8, 16); //Rule 2: No whitespace allowed Rule rule2 = new WhitespaceRule(); CharacterCharacteristicsRule rule3 = new CharacterCharacteristicsRule(); //M - Mandatory characters count rule3.setNumberOfCharacteristics(3); //Rule 3.a: One Upper-case character rule3.getRules().add(new CharacterRule(EnglishCharacterData.UpperCase, 1)); //Rule 3.b: One Lower-case character rule3.getRules().add(new CharacterRule(EnglishCharacterData.LowerCase, 1)); //Rule 3.c: One digit rule3.getRules().add(new CharacterRule(EnglishCharacterData.Digit, 1)); //Rule 3.d: One special character rule3.getRules().add(new CharacterRule(EnglishCharacterData.Special, 1)); PasswordValidator validator = new PasswordValidator(rule1, rule2, rule3); PasswordData password = new PasswordData("microsoft@123"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); } else { System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Password validated.
Passay — LengthComplexityRule
LengthComplexityRule помогает определить применимое правило для пароля на основе его длины. Рассмотрим следующую политику.
-
Если длина пароля составляет от 1 до 5 символов, разрешены только строчные буквы.
-
Если длина пароля составляет от 6 до 8 символов, то разрешены только a, b и c.
Если длина пароля составляет от 1 до 5 символов, разрешены только строчные буквы.
Если длина пароля составляет от 6 до 8 символов, то разрешены только a, b и c.
пример
В приведенном ниже примере показана проверка пароля в соответствии с вышеуказанной политикой с использованием библиотеки Passay.
import org.passay.AllowedCharacterRule; import org.passay.CharacterRule; import org.passay.EnglishCharacterData; import org.passay.LengthComplexityRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.RuleResult; public class PassayExample { public static void main(String[] args) { LengthComplexityRule lengthComplexityRule = new LengthComplexityRule(); //Rule: Password of 1 to 5 characters should contains lower case alphabets only lengthComplexityRule.addRules("[1,5]", new CharacterRule(EnglishCharacterData.LowerCase, 5)); //8 and 16 characters lengthComplexityRule.addRules("[6,8]", new AllowedCharacterRule(new char[] { 'a', 'b', 'c' })); PasswordValidator validator = new PasswordValidator(lengthComplexityRule); PasswordData password = new PasswordData("abcdef"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); }else{ System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Invalid Password: [ Password contains the illegal character 'd'., Password contains the illegal character 'e'., Password contains the illegal character 'f'., Password meets 0 complexity rules, but 1 are required.]
Passay — IllegalCharacterRule
IllegalCharacterRule позволяет указать символы, которые не допускаются в пароле. Рассмотрим следующий пример.
пример
import org.passay.IllegalCharacterRule; import org.passay.NumberRangeRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.RuleResult; import org.passay.WhitespaceRule; public class PassayExample { public static void main(String[] args) { //Rule: Special characters like &, <, > are not allowed in a password IllegalCharacterRule illegalCharacterRule = new IllegalCharacterRule(new char[] {'&', '<', '>'}); //Rule: 1 to 5 numbers are not allowed NumberRangeRule numberRangeRule = new NumberRangeRule(1, 5); //Rule: White spaces are not allowed WhitespaceRule whitespaceRule = new WhitespaceRule(); PasswordValidator validator = new PasswordValidator(illegalCharacterRule,numberRangeRule,whitespaceRule); PasswordData password = new PasswordData("abc&4d ef6"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); }else{ System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Invalid Password: [ Password contains the illegal character '&'., Password contains the number '4'., Password contains a whitespace character.]
Passay — NumberRangeRule
NumberRangeRule позволяет указать диапазон номеров, которые не допускаются в пароле. Рассмотрим следующий пример.
пример
import org.passay.IllegalCharacterRule; import org.passay.NumberRangeRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.RuleResult; import org.passay.WhitespaceRule; public class PassayExample { public static void main(String[] args) { //Rule: Special characters like &, <, > are not allowed in a password IllegalCharacterRule illegalCharacterRule = new IllegalCharacterRule(new char[] {'&', '<', '>'}); //Rule: 1 to 5 numbers are not allowed NumberRangeRule numberRangeRule = new NumberRangeRule(1, 5); //Rule: White spaces are not allowed WhitespaceRule whitespaceRule = new WhitespaceRule(); PasswordValidator validator = new PasswordValidator(illegalCharacterRule,numberRangeRule,whitespaceRule); PasswordData password = new PasswordData("abc&4d ef6"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); } else { System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Invalid Password: [ Password contains the illegal character '&'., Password contains the number '4'., Password contains a whitespace character.]
Passay — WhitespaceRule
WhitespaceRule позволяет указать, что пробелы в пароле запрещены. Рассмотрим следующий пример.
пример
import org.passay.IllegalCharacterRule; import org.passay.NumberRangeRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.RuleResult; import org.passay.WhitespaceRule; public class PassayExample { public static void main(String[] args) { //Rule: Special characters like &, <, > are not allowed in a password IllegalCharacterRule illegalCharacterRule = new IllegalCharacterRule(new char[] {'&', '<', '>'}); //Rule: 1 to 5 numbers are not allowed NumberRangeRule numberRangeRule = new NumberRangeRule(1, 5); //Rule: White spaces are not allowed WhitespaceRule whitespaceRule = new WhitespaceRule(); PasswordValidator validator = new PasswordValidator(illegalCharacterRule,numberRangeRule,whitespaceRule); PasswordData password = new PasswordData("abc&4d ef6"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); } else { System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Invalid Password: [ Password contains the illegal character '&'., Password contains the number '4'., Password contains a whitespace character.]
Passay — DictionaryRule
DictionaryRule позволяет проверить, не указаны ли определенные слова в качестве пароля. Рассмотрим следующий пример.
пример
import org.passay.DictionaryRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.RuleResult; import org.passay.dictionary.ArrayWordList; import org.passay.dictionary.WordListDictionary; public class PassayExample { public static void main(String[] args) { WordListDictionary wordListDictionary = new WordListDictionary( new ArrayWordList(new String[] { "password", "username" })); DictionaryRule dictionaryRule = new DictionaryRule(wordListDictionary); PasswordValidator validator = new PasswordValidator(dictionaryRule); PasswordData password = new PasswordData("password"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); }else{ System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Invalid Password: [Password contains the dictionary word 'password'.]
Passay — DictionarySubstringRule
DictionarySubstringRule позволяет проверить, не являются ли определенные слова частью пароля. Рассмотрим следующий пример.
пример
import org.passay.DictionarySubstringRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.RuleResult; import org.passay.dictionary.ArrayWordList; import org.passay.dictionary.WordListDictionary; public class PassayExample { public static void main(String[] args) { WordListDictionary wordListDictionary = new WordListDictionary( new ArrayWordList(new String[] { "password", "username" })); DictionarySubstringRule dictionaryRule = new DictionarySubstringRule(wordListDictionary); PasswordValidator validator = new PasswordValidator(dictionaryRule); PasswordData password = new PasswordData("password@123"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); }else{ System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Invalid Password: [Password contains the dictionary word 'password'.]
Passay — HistoryRule
HistoryRule позволяет проверить, не использовался ли данный пароль в ближайшее время. Рассмотрим следующий пример.
пример
import org.passay.HistoryRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.RuleResult; import org.passay.SourceRule; public class PassayExample { public static void main(String[] args) { SourceRule sourceRule = new SourceRule(); HistoryRule historyRule = new HistoryRule(); PasswordValidator validator = new PasswordValidator(sourceRule, historyRule); PasswordData password = new PasswordData("password@123"); password.setPasswordReferences( new PasswordData.SourceReference("source", "password"), new PasswordData.HistoricalReference("password@123") ); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); }else{ System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Invalid Password: [Password matches one of 1 previous passwords.]
Passay — RepeatCharacterRegexRule
RepeatCharacterRegexRule позволяет проверить, не содержит ли данный пароль повторяющиеся символы ascii. Рассмотрим следующий пример.
пример
import org.passay.LengthRule; import org.passay.PasswordData; import org.passay.PasswordValidator; import org.passay.RepeatCharacterRegexRule; import org.passay.Rule; import org.passay.RuleResult; public class PassayExample { public static void main(String[] args) { //Rule: Password should not contain repeated entries Rule rule1 = new RepeatCharacterRegexRule(3); //8 and 16 characters Rule rule2 = new LengthRule(8, 16); PasswordValidator validator = new PasswordValidator(rule1, rule2); PasswordData password = new PasswordData("aaefhehhhhh"); RuleResult result = validator.validate(password); if(result.isValid()){ System.out.println("Password validated."); }else{ System.out.println("Invalid Password: " + validator.getMessages(result)); } } }
Выход
Invalid Password: [Password matches the illegal pattern 'hhh'.]
Passay — UsernameRule
UsernameRule гарантирует, что пароль не содержит имя пользователя. Рассмотрим следующий пример.