Passay - Panduan Cepat

Passayadalah pembuatan kata sandi dan perpustakaan validasi berbasis Java. Ini menyediakan daftar fitur lengkap untuk memvalidasi / menghasilkan kata sandi dan sangat dapat dikonfigurasi.

Komponen Passay

Passay API memiliki 3 komponen inti.

  • Rule - satu atau lebih aturan yang menentukan kumpulan aturan kebijakan kata sandi.

  • PasswordValidator - Komponen validator yang memvalidasi kata sandi terhadap kumpulan aturan yang diberikan.

  • PasswordGenerator - Komponen generator yang menghasilkan kata sandi untuk memenuhi seperangkat aturan tertentu.

Ringkasan aturan

Aturan adalah blok dasar untuk validasi dan pembuatan kata sandi. Ada dua kategori besar aturan:

  • Pencocokan positif mengharuskan kata sandi memenuhi aturan.

  • Pencocokan negatif menolak kata sandi yang memenuhi aturan.

fitur

Berikut adalah beberapa fitur yang disediakan oleh perpustakaan Passay.

  • Password Validation- Perpustakaan passay membantu dalam menegakkan kebijakan kata sandi dengan memvalidasi kata sandi terhadap kumpulan aturan yang dapat dikonfigurasi. Ini memiliki seperangkat aturan yang kaya untuk kasus penggunaan umum. Untuk kasus tambahan, ini menyediakan antarmuka Aturan sederhana untuk mengimplementasikan aturan kustom.

  • Password Generation - Ini menyediakan seperangkat aturan yang dapat dikonfigurasi yang dapat digunakan untuk menghasilkan kata sandi juga.

  • Command Line Tools - Ini menyediakan alat untuk mengotomatiskan penegakan kebijakan kata sandi.

  • convenient - Mudah digunakan.

  • Extensible - Semua komponen Passay dapat dikembangkan.

  • Supports Internalization - Komponen passay siap untuk internasionalisasi.

Pengaturan Lingkungan Lokal

Jika Anda masih ingin mengatur lingkungan Anda untuk bahasa pemrograman Java, maka bagian ini memandu Anda tentang cara mengunduh dan mengatur Java di komputer Anda. Harap ikuti langkah-langkah yang disebutkan di bawah ini untuk menyiapkan lingkungan.

Java SE tersedia secara gratis dari tautan Unduh Java . Jadi, Anda mengunduh versi berdasarkan sistem operasi Anda.

Ikuti petunjuk untuk mengunduh Java dan menjalankan .exeuntuk menginstal Java di komputer Anda. Setelah Anda menginstal Java di komputer Anda, Anda perlu mengatur variabel lingkungan agar mengarah ke direktori instalasi yang benar -

Menyiapkan Path untuk Windows 2000 / XP

Kami berasumsi bahwa Anda telah menginstal Java di direktori c: \ Program Files \ java \ jdk -

  • Klik kanan pada 'My Computer' dan pilih 'Properties'.

  • Klik tombol 'Variabel lingkungan' di bawah tab 'Lanjutan'.

  • Sekarang, ubah variabel 'Path' sehingga juga berisi path ke Java yang dapat dieksekusi. Contoh, jika jalur saat ini disetel ke 'C: \ WINDOWS \ SYSTEM32', ubah jalur Anda menjadi 'C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin'.

Menyiapkan Path untuk Windows 95/98 / ME

Kami berasumsi bahwa Anda telah menginstal Java di direktori c: \ Program Files \ java \ jdk -

  • Edit file 'C: \ autoexec.bat' dan tambahkan baris berikut di bagian akhir - 'SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin'

Menyiapkan Path untuk Linux, UNIX, Solaris, FreeBSD

Variabel lingkungan PATH harus disetel agar mengarah ke tempat biner Java telah dipasang. Lihat dokumentasi shell Anda jika Anda kesulitan melakukan ini.

Contoh, jika Anda menggunakan bash sebagai shell Anda, maka Anda akan menambahkan baris berikut di akhir '.bashrc: export PATH = / path / to / java: $ PATH'

Editor Java Populer

Untuk menulis program Java Anda, Anda membutuhkan editor teks. Ada banyak IDE canggih yang tersedia di pasaran. Tetapi untuk saat ini, Anda dapat mempertimbangkan salah satu dari yang berikut -

  • Notepad - Pada mesin Windows Anda dapat menggunakan editor teks sederhana seperti Notepad (Disarankan untuk tutorial ini), TextPad.

  • Netbeans - Ini adalah IDE Java yang open-source dan gratis yang dapat diunduh dari https://www.netbeans.org/index.html.

  • Eclipse - Ini juga merupakan Java IDE yang dikembangkan oleh komunitas open-source eclipse dan dapat diunduh dari https://www.eclipse.org/.

Unduh Arsip Passay

Unduh versi terbaru file jar Passay dari Maven Repository - . Dalam tutorial ini, passay-1.4.0.jar diunduh dan disalin ke dalam folder C: \> passay.

OS Nama arsip
Windows passay-1.4.0.jar
Linux passay-1.4.0.jar
Mac passay-1.4.0.jar

Tetapkan Lingkungan Passay

Mengatur PASSAYvariabel lingkungan untuk menunjuk ke lokasi direktori dasar tempat jar Passay disimpan di komputer Anda. Dengan asumsi, kami telah mengekstrak passay-1.4.0.jar di folder Passay di berbagai Sistem Operasi sebagai berikut.

OS Keluaran
Windows Setel variabel lingkungan PASSAY ke C: \ Passay
Linux ekspor PASSAY = / usr / local / Passay
Mac ekspor PASSAY = / Library / Passay

Setel Variabel CLASSPATH

Mengatur CLASSPATHvariabel lingkungan untuk menunjuk ke lokasi jar Passay. Dengan asumsi, Anda telah menyimpan passay-1.4.0.jar di folder Passay pada berbagai Sistem Operasi sebagai berikut.

OS Keluaran
Windows Setel variabel lingkungan CLASSPATH ke% CLASSPATH%;% Passay% \ passay-1.4.0.jar;.;
Linux ekspor CLASSPATH = $ CLASSPATH: $ PASSAY / passay-1.4.0.jar :.
Mac ekspor CLASSPATH = $ CLASSPATH: $ PASSAY / passay-1.4.0.jar :.

Kebijakan kata sandi tipikal berisi sekumpulan aturan untuk memeriksa kata sandi jika sesuai dengan aturan organisasi. Pertimbangkan kebijakan berikut:

  • Panjang kata sandi harus antara 8 hingga 16 karakter.

  • Kata sandi tidak boleh mengandung spasi.

  • Kata sandi harus berisi masing-masing hal berikut: atas, bawah, angka dan simbol.

Contoh

Contoh di bawah ini menunjukkan validasi kata sandi terhadap kebijakan di atas menggunakan pustaka 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));            
        }
    }
}

Keluaran

Password validated.

Pustaka passay menyediakan MessageResolver API untuk mengganti pesan default yang digunakan oleh validator. Ini dapat mengambil jalur ke file properti khusus dan menggunakan kunci standar untuk mengganti pesan yang diperlukan.

Contoh

Contoh di bawah ini menunjukkan validasi kata sandi dan menampilkan pesan khusus menggunakan pustaka 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));            
      }
   }
}

Keluaran

Invalid Password: [Password missing at least 1 uppercase characters.]

Sering kali kebijakan kata sandi mengharuskan kepatuhan terhadap aturan minimum dari aturan yang diberikan seperti kata sandi harus sesuai dengan setidaknya aturan M dari N. Pertimbangkan kebijakan berikut.

  • Panjang kata sandi harus antara 8 hingga 16 karakter.

  • Kata sandi tidak boleh mengandung spasi.

  • Sebuah kata sandi harus mengandung setidaknya tiga dari berikut ini: atas, bawah, angka atau simbol.

Contoh

Contoh di bawah ini menunjukkan validasi kata sandi terhadap kebijakan di atas menggunakan pustaka 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));            
      }
   }
}

Keluaran

Password validated.

PasswordGeneratormembantu dalam menghasilkan kata sandi menggunakan kebijakan yang diberikan. Pertimbangkan kebijakan berikut:

  • Panjang kata sandi harus 8 karakter.

  • Kata sandi harus berisi masing-masing hal berikut: atas, bawah, angka dan simbol.

Contoh

Contoh di bawah ini menunjukkan pembuatan kata sandi yang bertentangan dengan kebijakan di atas menggunakan pustaka 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);
   }
}

Keluaran

?\DE~@c3

AllowedCharacterRulememungkinkan untuk menentukan karakter yang dapat dimasukkan kata sandi. Perhatikan contoh berikut.

Contoh

Contoh di bawah ini menunjukkan validasi kata sandi terhadap kebijakan di atas menggunakan pustaka 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));            
      }
   }
}

Keluaran

Invalid Password: [Password contains the illegal character '1'.]

AllowedRegexRulememungkinkan untuk menentukan pola reguler yang harus dipenuhi oleh kata sandi. Perhatikan contoh berikut.

Contoh

Contoh di bawah ini menunjukkan validasi kata sandi terhadap kebijakan di atas menggunakan pustaka 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));            
      }
   }
}

Keluaran

Invalid Password: [Password must match pattern '^[A-Za-z]+$'.]

CharacterRulemembantu dalam mendefinisikan satu set karakter dan minimum no. karakter yang diperlukan dalam kata sandi.

Contoh

Contoh di bawah ini menunjukkan validasi kata sandi terhadap kebijakan di atas menggunakan pustaka 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));            
      }
   }
}

Keluaran

Password validated.

LengthRule membantu dalam menentukan panjang minimum dan maksimum sebuah kata sandi.

Contoh

Contoh di bawah ini menunjukkan validasi kata sandi terhadap kebijakan di atas menggunakan pustaka 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));            
      }
   }
}

Keluaran

Password validated.

CharacterCharacteristicsRule membantu dalam menentukan apakah kata sandi memenuhi aturan yang ditentukan N yang diberikan atau tidak.

Contoh

Contoh di bawah ini menunjukkan validasi kata sandi terhadap kebijakan di atas menggunakan pustaka 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));            
      }
   }
}

Keluaran

Password validated.

LengthComplexityRulemembantu dalam menentukan aturan yang berlaku pada kata sandi berdasarkan panjangnya. Pertimbangkan kebijakan berikut.

  • Jika panjang kata sandi antara 1 sampai 5 karakter, hanya huruf kecil yang diperbolehkan.

  • Jika panjang password antara 6 sampai 8 karakter, maka yang diperbolehkan hanya a, b dan c.

Contoh

Contoh di bawah ini menunjukkan validasi kata sandi terhadap kebijakan di atas menggunakan pustaka 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));            
      }
   }
}

Keluaran

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.]

IllegalCharacterRulememungkinkan untuk menentukan karakter yang tidak diperbolehkan dalam kata sandi. Perhatikan contoh berikut.

Contoh

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));            
      }
   }
}

Keluaran

Invalid Password: [
Password contains the illegal character '&'.,
Password contains the number '4'.,
Password contains a whitespace character.]

NumberRangeRulememungkinkan untuk menentukan kisaran angka yang tidak diperbolehkan dalam kata sandi. Perhatikan contoh berikut.

Contoh

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));            
      }
   }
}

Keluaran

Invalid Password: [
Password contains the illegal character '&'.,
Password contains the number '4'.,
Password contains a whitespace character.]

WhitespaceRulememungkinkan untuk menentukan bahwa spasi putih tidak diperbolehkan dalam kata sandi. Perhatikan contoh berikut.

Contoh

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));            
      }
   }
}

Keluaran

Invalid Password: [
Password contains the illegal character '&'.,
Password contains the number '4'.,
Password contains a whitespace character.]

DictionaryRulememungkinkan untuk memeriksa apakah kata-kata tertentu tidak ditentukan sebagai kata sandi. Perhatikan contoh berikut.

Contoh

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));            
      }
   }
}

Keluaran

Invalid Password: [Password contains the dictionary word 'password'.]

DictionarySubstringRulememungkinkan untuk memeriksa apakah kata-kata tertentu bukan bagian dari kata sandi. Perhatikan contoh berikut.

Contoh

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));            
      }
   }
}

Keluaran

Invalid Password: [Password contains the dictionary word 'password'.]

HistoryRulememungkinkan untuk memeriksa apakah kata sandi yang diberikan belum digunakan di masa lalu. Perhatikan contoh berikut.

Contoh

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));            
      }
   }
}

Keluaran

Invalid Password: [Password matches one of 1 previous passwords.]

RepeatCharacterRegexRulememungkinkan untuk memeriksa apakah kata sandi yang diberikan telah mengulangi karakter ascii. Perhatikan contoh berikut.

Contoh

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));            
      }
   }
}

Keluaran

Invalid Password: [Password matches the illegal pattern 'hhh'.]

UsernameRulememastikan bahwa kata sandi tidak mengandung nama pengguna. Perhatikan contoh berikut.

Contoh

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));            
      }
   }
}

Keluaran

Invalid Password: [Password contains the user id 'micro'.]