public Config lower() { return PasswordGenerator.this.lower(); }
public String generate() { return PasswordGenerator.this.generate(); } }
public Config upper() { return PasswordGenerator.this.upper(); }
private static CreateResourcesThenCreateNodes strategy(AzureComputeApi api) { return new CreateResourcesThenCreateNodes(null, null, null, null, null, api, null, null, null, null, new PasswordGenerator().lower(), null); }
@Test public void defaultGeneratorContainsAll() { String password = new PasswordGenerator().generate(); assertTrue(password.matches(".*[a-z].*[a-z].*")); assertTrue(password.matches(".*[A-Z].*[A-Z].*")); assertTrue(password.matches(".*[0-9].*[0-9].*")); assertTrue(password.replaceAll("[a-zA-Z0-9]", "").length() > 0); }
@Test public void onlyLowerCase() { String password = new PasswordGenerator() .upper().count(0) .numbers().count(0) .symbols().count(0) .generate(); assertTrue(password.matches("^[a-z]+$")); }
public Config numbers() { return PasswordGenerator.this.numbers(); }
/** * Generates a random password using the configured spec. */ public String generate() { StringBuilder sb = new StringBuilder(); sb.append(lower.fragment()); sb.append(upper.fragment()); sb.append(numbers.fragment()); sb.append(symbols.fragment()); return shuffleAndJoin(sb.toString().toCharArray()); }
@Provides @Singleton protected PasswordGenerator.Config providePasswordGenerator() { return new PasswordGenerator() .lower().min(2).max(10).exclude("ilowyz".toCharArray()) .upper().min(2).max(10).exclude("IOWYZ".toCharArray()) .numbers().min(2).max(10).exclude("10".toCharArray()) .symbols().count(0); }
@Provides @Singleton protected PasswordGenerator.Config providePasswordGenerator() { return new PasswordGenerator() .lower().min(2).max(10).exclude("ilowyz".toCharArray()) .upper().min(2).max(10).exclude("IOWYZ".toCharArray()) .numbers().min(2).max(10).exclude("10".toCharArray()) .symbols().count(0); }
@Provides @Singleton protected PasswordGenerator.Config providePasswordGenerator() { // Guest passwords must be between 6-72 characters long. // Must contain an upper case character. // Must contain a lower case character. // Must contain a numeric digit. // Must contain a special character. Control characters are not allowed. return new PasswordGenerator() .lower().min(2).max(10) .upper().min(2).max(10) .numbers().min(2).max(10) .symbols().min(2).max(10); }
@Test public void lowerAndUpperWithConstrainedLength() { String password = new PasswordGenerator() .lower().min(2).max(5) .upper().count(3) .numbers().count(0) .symbols().count(0) .generate(); assertTrue(password.matches("^[a-zA-Z]+$")); assertTrue(password.replaceAll("[A-Z]", "").matches("[a-z]{2,5}")); assertTrue(password.replaceAll("[a-z]", "").matches("[A-Z]{3}")); }
@Test public void characterExclusion() { String password = new PasswordGenerator() .lower().count(0) .upper().count(0) .numbers().exclude("012345".toCharArray()) .symbols().count(0) .generate(); assertTrue(password.matches("^[6-9]+$")); } }
@Test public void emptyPassword() { String password = new PasswordGenerator() .lower().count(0) .upper().count(0) .numbers().count(0) .symbols().count(0) .generate(); assertEquals(password, ""); }