1 package com.supwisdom.institute.backend.admin.bff.security.core.userdetails;
3 import java.util.ArrayList;
4 import java.util.HashMap;
8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.security.core.GrantedAuthority;
10 import org.springframework.security.core.authority.SimpleGrantedAuthority;
11 import org.springframework.security.core.userdetails.ReactiveUserDetailsService;
12 import org.springframework.security.core.userdetails.UserDetails;
13 import org.springframework.security.core.userdetails.UserDetailsService;
14 import org.springframework.security.core.userdetails.UsernameNotFoundException;
15 import org.springframework.security.crypto.password.PasswordEncoder;
17 import com.supwisdom.institute.backend.common.core.transmit.user.User;
18 import com.supwisdom.institute.backend.common.core.transmit.user.UserContext;
20 import reactor.core.publisher.Mono;
21 import lombok.extern.slf4j.Slf4j;
24 public class InMemeryUserDetailsService implements UserDetailsService, ReactiveUserDetailsService {
27 PasswordEncoder passwordEncoder;
30 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
32 log.debug("InMemeryUserDetailsService.loadUserByUsername({})", username);
34 List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
35 authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
36 authorities.add(new SimpleGrantedAuthority("administrator"));
37 authorities.add(new SimpleGrantedAuthority("user"));
39 Map<String, Object> attributes = new HashMap<String, Object>();
41 MyUser myUser = new MyUser(username, passwordEncoder.encode(username), authorities, attributes);
42 log.debug("myUser is {}", myUser);
48 public Mono<UserDetails> findByUsername(String username) {
50 log.debug("InMemeryUserDetailsService.findByUsername({})", username);
52 List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
53 authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
54 authorities.add(new SimpleGrantedAuthority("administrator"));
55 authorities.add(new SimpleGrantedAuthority("user"));
57 Map<String, Object> attributes = new HashMap<String, Object>();
59 MyUser myUser = new MyUser(username, passwordEncoder.encode(username), authorities, attributes);
60 log.debug("myUser is {}", myUser);
62 List<String> roles = new ArrayList<>();
63 roles.add("ROLE_ADMIN");
64 roles.add("administrator");
66 User user = new User(username, roles, attributes);
67 UserContext.setUser(user);
69 return Mono.just(myUser);