Browse Source

DelegatingPasswordEncoder handles null encodedPassword

Fixes: gh-4872
pull/4879/head
Rob Winch 8 years ago
parent
commit
f558b5016c
  1. 3
      crypto/src/main/java/org/springframework/security/crypto/password/DelegatingPasswordEncoder.java
  2. 5
      crypto/src/test/java/org/springframework/security/crypto/password/DelegatingPasswordEncoderTests.java

3
crypto/src/main/java/org/springframework/security/crypto/password/DelegatingPasswordEncoder.java

@ -200,6 +200,9 @@ public class DelegatingPasswordEncoder implements PasswordEncoder { @@ -200,6 +200,9 @@ public class DelegatingPasswordEncoder implements PasswordEncoder {
}
private String extractId(String prefixEncodedPassword) {
if (prefixEncodedPassword == null) {
return null;
}
int start = prefixEncodedPassword.indexOf(PREFIX);
if(start != 0) {
return null;

5
crypto/src/test/java/org/springframework/security/crypto/password/DelegatingPasswordEncoderTests.java

@ -177,4 +177,9 @@ public class DelegatingPasswordEncoderTests { @@ -177,4 +177,9 @@ public class DelegatingPasswordEncoderTests {
verify(this.invalidId).matches(this.rawPassword, this.encodedPassword);
verifyZeroInteractions(this.bcrypt, this.noop);
}
@Test(expected = IllegalStateException.class)
public void matchesWhenRawPasswordNotNullAndEncodedPasswordNullThenThrowsIllegalStateException() {
this.passwordEncoder.matches(this.rawPassword, null);
}
}

Loading…
Cancel
Save