package com.vci.ubcs.admin.security;
|
|
import org.springframework.security.authentication.ReactiveAuthenticationManager;
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
import reactor.core.publisher.Mono;
|
|
public class CustomAuthenticationManager implements ReactiveAuthenticationManager {
|
|
private final UserDetailsService userDetailsService;
|
|
public CustomAuthenticationManager(UserDetailsService userDetailsService) {
|
this.userDetailsService = userDetailsService;
|
}
|
|
@Override
|
public Mono<Authentication> authenticate(Authentication authentication) {
|
String username = authentication.getName();
|
String password = authentication.getCredentials().toString();
|
|
UserDetails userDetails = userDetailsService.loadUserByUsername(username);
|
|
if (userDetails.getPassword().equals(password)) {
|
return Mono.just(new UsernamePasswordAuthenticationToken(userDetails, password, userDetails.getAuthorities()));
|
} else {
|
return Mono.empty();
|
}
|
}
|
}
|