Passay - Hızlı Kılavuz
PassayJava tabanlı bir Parola oluşturma ve doğrulama kitaplığıdır. Parolaları doğrulamak / oluşturmak için kapsamlı özellikler listesi sağlar ve oldukça yapılandırılabilir.
Passay Bileşenleri
Passay API'nin 3 temel bileşeni vardır.
Rule - bir şifre ilke kural kümesini tanımlayan bir veya daha fazla kural.
PasswordValidator - Belirli bir kural kümesine göre parolayı doğrulayan bir doğrulayıcı bileşeni.
PasswordGenerator - Belirli bir kural kümesini karşılamak için parolalar üreten bir oluşturucu bileşen.
Kurala genel bakış
Kurallar, hem parola doğrulama hem de oluşturma için temel bloklardır. İki geniş kural kategorisi vardır:
Pozitif eşleşme, şifrelerin bir kuralı karşılamasını gerektirir.
Negatif eşleme, bir kuralı karşılayan şifreleri reddeder.
Özellikleri
Aşağıda Passay kitaplığının sağladığı özelliklerden bazıları verilmiştir.
Password Validation- Parola kitaplığı, parolaları yapılandırılabilir bir kural kümesine göre doğrulayarak bir parola ilkesinin uygulanmasına yardımcı olur. Yaygın kullanım durumları için zengin bir mevcut kurallar kümesine sahiptir. Ek durumlar için, özel kuralı uygulamak için basit bir Kural arabirimi sağlar.
Password Generation - Parola oluşturmak için de kullanılabilen yapılandırılabilir bir kural seti sağlar.
Command Line Tools - Parola ilkesinin uygulanmasını otomatikleştirmek için araçlar sağlar.
convenient - Kullanımı kolaydır.
Extensible - Tüm Passay bileşenleri genişletilebilir.
Supports Internalization - Passay bileşenleri uluslararasılaştırmaya hazırdır.
Yerel Ortam Kurulumu
Hala ortamınızı Java programlama dili için kurmaya istekliyseniz, bu bölüm Java'yı makinenize nasıl indirip kuracağınız konusunda size yol gösterir. Ortamı kurmak için lütfen aşağıda belirtilen adımları izleyin.
Java SE, Java İndirme bağlantısından ücretsiz olarak edinilebilir . Böylece işletim sisteminize göre bir sürüm indirirsiniz.
Java'yı indirmek için talimatları izleyin ve .exeMakinenize Java yüklemek için. Java'yı makinenize yükledikten sonra, ortam değişkenlerini doğru yükleme dizinlerini gösterecek şekilde ayarlamanız gerekir -
Windows 2000 / XP için Yolun Ayarlanması
Java'yı c: \ Program Files \ java \ jdk dizinine yüklediğinizi varsayıyoruz -
"Bilgisayarım" ı sağ tıklayın ve "Özellikler" i seçin.
"Gelişmiş" sekmesinin altındaki "Ortam değişkenleri" düğmesini tıklayın.
Şimdi, 'Yol' değişkenini, Java yürütülebilir dosyasının yolunu da içerecek şekilde değiştirin. Örneğin, yol şu anda 'C: \ WINDOWS \ SYSTEM32' olarak ayarlanmışsa, yolunuzu 'C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin' olarak değiştirin.
Windows 95/98 / ME için Yolun Ayarlanması
Java'yı c: \ Program Files \ java \ jdk dizinine yüklediğinizi varsayıyoruz -
'C: \ autoexec.bat' dosyasını düzenleyin ve sonuna şu satırı ekleyin - 'SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin'
Linux, UNIX, Solaris, FreeBSD için Yolun Ayarlanması
PATH ortam değişkeni, Java ikili dosyalarının kurulu olduğu yeri gösterecek şekilde ayarlanmalıdır. Bunu yapmakta sorun yaşıyorsanız, kabuk belgelerinize bakın.
Örneğin, kabuğunuz olarak bash kullanırsanız, aşağıdaki satırı '.bashrc: export PATH = / path / to / java: $ PATH'in sonuna eklersiniz.
Popüler Java Editörleri
Java programlarınızı yazmak için bir metin düzenleyiciye ihtiyacınız var. Piyasada birçok sofistike IDE bulunmaktadır. Ancak şimdilik aşağıdakilerden birini düşünebilirsiniz -
Notepad - Windows makinede, Not Defteri (Bu eğitim için önerilir), TextPad gibi herhangi bir basit metin düzenleyiciyi kullanabilirsiniz.
Netbeans - Açık kaynak kodlu ve ücretsiz bir Java IDE'dir, buradan indirilebilir https://www.netbeans.org/index.html.
Eclipse - Eclipse açık kaynak topluluğu tarafından geliştirilmiş bir Java IDE'dir ve şu adresten indirilebilir: https://www.eclipse.org/.
Passay Arşivini İndir
Passay jar dosyasının en son sürümünü Maven Repository'den indirin - . Bu eğiticide passay-1.4.0.jar indirilir ve C: \> passay klasörüne kopyalanır.
işletim sistemi | Arşiv adı |
---|---|
pencereler | passay-1.4.0.jar |
Linux | passay-1.4.0.jar |
Mac | passay-1.4.0.jar |
Geçiş Ortamını Ayarlama
Yı kur PASSAYPassay jar'ın makinenizde depolandığı temel dizin konumuna işaret etmek için ortam değişkeni. Varsayalım ki, çeşitli İşletim Sistemlerinde Passay klasöründe passay-1.4.0.jar dosyasını aşağıdaki gibi çıkardık.
işletim sistemi | Çıktı |
---|---|
pencereler | PASSAY ortam değişkenini C: \ Passay olarak ayarlayın |
Linux | ihracat PASSAY = / usr / local / Passay |
Mac | export PASSAY = / Library / Passay |
CLASSPATH Değişkenini Ayarla
Yı kur CLASSPATHPassay kavanoz konumuna işaret etmek için ortam değişkeni. Varsayalım ki passay-1.4.0.jar dosyasını aşağıdaki gibi çeşitli İşletim Sistemlerinde Passay klasöründe sakladınız.
işletim sistemi | Çıktı |
---|---|
pencereler | Ortam değişkenini CLASSPATH olarak% CLASSPATH%;% Passay% \ passay-1.4.0.jar;.; |
Linux | dışa aktar CLASSPATH = $ CLASSPATH: $ PASSAY / passay-1.4.0.jar :. |
Mac | dışa aktar CLASSPATH = $ CLASSPATH: $ PASSAY / passay-1.4.0.jar :. |
Tipik bir Parola politikası, kuruluş kurallarıyla uyumlu olup olmadığını kontrol etmek için bir dizi kural içerir. Aşağıdaki politikayı düşünün:
Şifre uzunluğu 8 ile 16 karakter arasında olmalıdır.
Parola herhangi bir boşluk içermemelidir.
Bir şifre şunların her birini içermelidir: üst, alt, rakam ve bir sembol.
Misal
Aşağıdaki örnek, Passay kitaplığı kullanılarak bir parolanın yukarıdaki politikaya göre doğrulanmasını göstermektedir.
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));
}
}
}
Çıktı
Password validated.
Passay kitaplığı, doğrulayıcı tarafından kullanılan varsayılan mesajları geçersiz kılmak için bir MessageResolver API'si sağlar. Özel özellikler dosyasına giden yolu alabilir ve gerekli mesajı geçersiz kılmak için standart anahtarları kullanabilir.
Misal
Aşağıdaki örnek, bir parolanın doğrulanmasını ve Passay kitaplığı kullanılarak özel bir mesaj gösterir.
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));
}
}
}
Çıktı
Invalid Password: [Password missing at least 1 uppercase characters.]
Çoğu zaman, bir parola gibi belirli kuralların dışında minimum kurallara uymayı zorunlu kılan bir parola politikası, en az M of N kuralına uygun olmalıdır. Aşağıdaki politikayı düşünün.
Şifre uzunluğu 8 ile 16 karakter arasında olmalıdır.
Parola herhangi bir boşluk içermemelidir.
Bir parola, şunlardan en az üçünü içermelidir: üst, alt, rakam veya simge.
Misal
Aşağıdaki örnek, Passay kitaplığı kullanılarak bir parolanın yukarıdaki politikaya göre doğrulanmasını göstermektedir.
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));
}
}
}
Çıktı
Password validated.
PasswordGeneratorverilen politikayı kullanarak şifre oluşturmaya yardımcı olur. Aşağıdaki politikayı düşünün:
Şifre uzunluğu 8 karakter olmalıdır.
Bir şifre şunların her birini içermelidir: üst, alt, rakam ve bir sembol.
Misal
Aşağıdaki örnek, Passay kitaplığı kullanılarak yukarıdaki politikaya karşı bir şifre oluşturulmasını göstermektedir.
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);
}
}
Çıktı
?\DE~@c3
AllowedCharacterRulebir parolanın içerebileceği karakterleri belirlemenize izin verir. Aşağıdaki örneği düşünün.
Misal
Aşağıdaki örnek, Passay kitaplığı kullanılarak bir parolanın yukarıdaki politikaya göre doğrulanmasını göstermektedir.
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));
}
}
}
Çıktı
Invalid Password: [Password contains the illegal character '1'.]
AllowedRegexRulebir parolanın karşılaması gereken normal kalıbı belirlemeye izin verir. Aşağıdaki örneği düşünün.
Misal
Aşağıdaki örnek, Passay kitaplığı kullanılarak bir parolanın yukarıdaki politikaya göre doğrulanmasını göstermektedir.
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));
}
}
}
Çıktı
Invalid Password: [Password must match pattern '^[A-Za-z]+$'.]
CharacterRulebir dizi karakterin tanımlanmasına yardımcı olur ve minimum hayır. Parolada gerekli olan karakter sayısı.
Misal
Aşağıdaki örnek, Passay kitaplığı kullanılarak bir parolanın yukarıdaki politikaya göre doğrulanmasını göstermektedir.
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));
}
}
}
Çıktı
Password validated.
LengthRule bir parolanın minimum ve maksimum uzunluğunun tanımlanmasına yardımcı olur.
Misal
Aşağıdaki örnek, Passay kitaplığı kullanılarak bir parolanın yukarıdaki politikaya göre doğrulanmasını göstermektedir.
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));
}
}
}
Çıktı
Password validated.
CharacterCharacteristicsRule bir parolanın belirli N tanımlı kuralı karşılayıp karşılamadığını tanımlamaya yardımcı olur.
Misal
Aşağıdaki örnek, Passay kitaplığı kullanılarak bir parolanın yukarıdaki politikaya göre doğrulanmasını göstermektedir.
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));
}
}
}
Çıktı
Password validated.
LengthComplexityRulebir parolanın uzunluğuna bağlı olarak geçerli kuralı tanımlamaya yardımcı olur. Aşağıdaki politikayı düşünün.
Parola uzunluğu 1 ila 5 karakter arasındaysa, yalnızca küçük harflere izin verilir.
Parola uzunluğu 6 ila 8 karakter arasındaysa, yalnızca a, b ve c'ye izin verilir.
Misal
Aşağıdaki örnek, Passay kitaplığı kullanılarak bir parolanın yukarıdaki politikaya göre doğrulanmasını göstermektedir.
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));
}
}
}
Çıktı
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.]
IllegalCharacterRulebir şifrede izin verilmeyen karakterlerin belirlenmesine izin verir. Aşağıdaki örneği düşünün.
Misal
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));
}
}
}
Çıktı
Invalid Password: [
Password contains the illegal character '&'.,
Password contains the number '4'.,
Password contains a whitespace character.]
NumberRangeRulebir parolada izin verilmeyen sayı aralığını belirlemeye izin verir. Aşağıdaki örneği düşünün.
Misal
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));
}
}
}
Çıktı
Invalid Password: [
Password contains the illegal character '&'.,
Password contains the number '4'.,
Password contains a whitespace character.]
WhitespaceRulebir şifrede beyaz boşluklara izin verilmediğini belirtmeye izin verir. Aşağıdaki örneği düşünün.
Misal
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));
}
}
}
Çıktı
Invalid Password: [
Password contains the illegal character '&'.,
Password contains the number '4'.,
Password contains a whitespace character.]
DictionaryRulebelirli kelimelerin şifre olarak belirtilmediğini kontrol etmeye izin verir. Aşağıdaki örneği düşünün.
Misal
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));
}
}
}
Çıktı
Invalid Password: [Password contains the dictionary word 'password'.]
DictionarySubstringRulebelirli kelimelerin bir şifrenin parçası olup olmadığını kontrol etmeye izin verir. Aşağıdaki örneği düşünün.
Misal
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));
}
}
}
Çıktı
Invalid Password: [Password contains the dictionary word 'password'.]
HistoryRuleverilen şifrenin yakın geçmişte kullanımda olup olmadığını kontrol etmeye izin verir. Aşağıdaki örneği düşünün.
Misal
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));
}
}
}
Çıktı
Invalid Password: [Password matches one of 1 previous passwords.]
RepeatCharacterRegexRuleverilen parolanın ascii karakterlerini tekrar edip etmediğini kontrol etmeye izin verir. Aşağıdaki örneği düşünün.
Misal
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));
}
}
}
Çıktı
Invalid Password: [Password matches the illegal pattern 'hhh'.]
UsernameRuleparolanın kullanıcı adını içermemesini sağlar. Aşağıdaki örneği düşünün.
Misal
import org.passay.PasswordData;
import org.passay.PasswordValidator;
import org.passay.Rule;
import org.passay.RuleResult;
import org.passay.UsernameRule;
public class PassayExample {
public static void main(String[] args) {
//Rule: Password should not contain user-name
Rule rule = new UsernameRule();
PasswordValidator validator = new PasswordValidator(rule);
PasswordData password = new PasswordData("microsoft");
password.setUsername("micro");
RuleResult result = validator.validate(password);
if(result.isValid()){
System.out.println("Password validated.");
}else{
System.out.println("Invalid Password: " + validator.getMessages(result));
}
}
}
Çıktı
Invalid Password: [Password contains the user id 'micro'.]