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 {
} }
private String extractId(String prefixEncodedPassword) { private String extractId(String prefixEncodedPassword) {
if (prefixEncodedPassword == null) {
return null;
}
int start = prefixEncodedPassword.indexOf(PREFIX); int start = prefixEncodedPassword.indexOf(PREFIX);
if(start != 0) { if(start != 0) {
return null; return null;

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

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

Loading…
Cancel
Save