User.UserBuilder only encodes once

Fixes gh-4794
This commit is contained in:
Rob Winch
2017-11-06 09:27:03 -06:00
parent 21aec19d42
commit d9abd2e443
2 changed files with 18 additions and 4 deletions

View File

@@ -23,6 +23,7 @@ import java.io.ObjectOutputStream;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Function;
import org.junit.Test;
import org.springframework.security.core.GrantedAuthority;
@@ -210,4 +211,17 @@ public class UserTests {
assertThat(withEncodedPassword.getPassword()).isEqualTo("passwordencoded");
}
@Test
public void withUsernameWhenPasswordAndPasswordEncoderTwiceThenEncodesOnce() {
Function<String, String> encoder = p -> p + "encoded";
UserDetails withEncodedPassword = User.withUsername("user")
.passwordEncoder(encoder)
.password("password")
.passwordEncoder(encoder)
.roles("USER")
.build();
assertThat(withEncodedPassword.getPassword()).isEqualTo("passwordencoded");
}
}