UserDetailsRepository->ReactiveUserDetailsService

Issue gh-4615
This commit is contained in:
Rob Winch
2017-10-10 09:46:15 -05:00
parent f1bc82dcef
commit 4681697581
16 changed files with 74 additions and 87 deletions

View File

@@ -16,11 +16,9 @@
package org.springframework.security.authentication;
import org.springframework.security.authentication.encoding.PlaintextPasswordEncoder;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsRepository;
import org.springframework.security.core.userdetails.ReactiveUserDetailsService;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.util.Assert;
@@ -32,13 +30,13 @@ import reactor.core.scheduler.Schedulers;
* @since 5.0
*/
public class UserDetailsRepositoryAuthenticationManager implements ReactiveAuthenticationManager {
private final UserDetailsRepository repository;
private final ReactiveUserDetailsService repository;
private PasswordEncoder passwordEncoder = NoOpPasswordEncoder.getInstance();
public UserDetailsRepositoryAuthenticationManager(UserDetailsRepository userDetailsRepository) {
Assert.notNull(userDetailsRepository, "userDetailsRepository cannot be null");
this.repository = userDetailsRepository;
public UserDetailsRepositoryAuthenticationManager(ReactiveUserDetailsService reactiveUserDetailsService) {
Assert.notNull(reactiveUserDetailsService, "userDetailsRepository cannot be null");
this.repository = reactiveUserDetailsService;
}
@Override

View File

@@ -30,20 +30,20 @@ import reactor.core.publisher.Mono;
* @author Rob Winch
* @since 5.0
*/
public class MapUserDetailsRepository implements UserDetailsRepository {
public class MapReactiveUserDetailsService implements ReactiveUserDetailsService {
private final Map<String,UserDetails> users;
public MapUserDetailsRepository(Map<String,UserDetails> users) {
public MapReactiveUserDetailsService(Map<String,UserDetails> users) {
this.users = users;
}
public MapUserDetailsRepository(UserDetails... users) {
public MapReactiveUserDetailsService(UserDetails... users) {
this(Arrays.asList(users));
}
public MapUserDetailsRepository(Collection<UserDetails> users) {
public MapReactiveUserDetailsService(Collection<UserDetails> users) {
Assert.notEmpty(users, "users cannot be null or empty");
this.users = users.stream().collect(Collectors.toMap( u -> getKey(u.getName()), Function.identity()));
this.users = users.stream().collect(Collectors.toConcurrentMap( u -> getKey(u.getName()), Function.identity()));
}
@Override

View File

@@ -20,7 +20,7 @@ import org.springframework.security.core.userdetails.UserDetails;
import reactor.core.publisher.Mono;
public interface UserDetailsRepository {
public interface ReactiveUserDetailsService {
Mono<UserDetails> findByUsername(String username);
}