package com.intrbiz.bergamot.ui.security.password.check; import java.io.IOException; import java.util.Set; import java.util.TreeSet; import org.apache.log4j.Logger; /** * Check the given password against a set of know bad passwords */ public class BannedPasswordChecker implements PasswordChecker { private final Set<String> bannedPasswords = new TreeSet<String>(); public BannedPasswordChecker(WordReader source) { super(); String word; try { while ((word = source.next()) != null) { this.bannedPasswords.add(word.toLowerCase()); } } catch (IOException e) { Logger.getLogger(BannedPasswordChecker.class).warn("Failed to load list of banned passwords", e); } finally { source.close(); } } public BannedPasswordChecker(Set<String> passwords) { super(); for (String word : passwords) { this.bannedPasswords.add(word.toLowerCase()); } } @Override public void check(String password) throws BadPassword { if (this.bannedPasswords.contains(password.toLowerCase())) throw new BadPassword("Banned password"); } public String toString() { return "Banned Password Checker"; } }