Browse Source

BCryptPasswordEncoder rawPassword cannot be null

Closes gh-8317
pull/8361/head
Alan Czajkowski 6 years ago committed by Rob Winch
parent
commit
4b2afdf825
  1. 8
      crypto/src/main/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoder.java
  2. 12
      crypto/src/test/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoderTests.java

8
crypto/src/main/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoder.java

@ -99,6 +99,10 @@ public class BCryptPasswordEncoder implements PasswordEncoder { @@ -99,6 +99,10 @@ public class BCryptPasswordEncoder implements PasswordEncoder {
}
public String encode(CharSequence rawPassword) {
if (rawPassword == null) {
throw new IllegalArgumentException("rawPassword cannot be null");
}
String salt;
if (random != null) {
salt = BCrypt.gensalt(version.getVersion(), strength, random);
@ -109,6 +113,10 @@ public class BCryptPasswordEncoder implements PasswordEncoder { @@ -109,6 +113,10 @@ public class BCryptPasswordEncoder implements PasswordEncoder {
}
public boolean matches(CharSequence rawPassword, String encodedPassword) {
if (rawPassword == null) {
throw new IllegalArgumentException("rawPassword cannot be null");
}
if (encodedPassword == null || encodedPassword.length() == 0) {
logger.warn("Empty encoded password");
return false;

12
crypto/src/test/java/org/springframework/security/crypto/bcrypt/BCryptPasswordEncoderTests.java

@ -200,4 +200,16 @@ public class BCryptPasswordEncoderTests { @@ -200,4 +200,16 @@ public class BCryptPasswordEncoderTests {
encoder.upgradeEncoding("not-a-bcrypt-password");
}
@Test(expected = IllegalArgumentException.class)
public void encodeNullRawPassword() {
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
encoder.encode(null);
}
@Test(expected = IllegalArgumentException.class)
public void matchNullRawPassword() {
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
encoder.matches(null, "does-not-matter");
}
}

Loading…
Cancel
Save