ludc
2024-02-29 8ef9e366be48dc5e8e52617ea8ed48b37a0e1f74
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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();
        }
    }
}