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 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(); } } }