bfe9a21bf2bbdf6c69c73c6aa76a0ffe6a578fc0
[institute/sw-backend.git] /
1 package com.supwisdom.institute.backend.admin.bff.security.core.userdetails;
2
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.List;
6 import java.util.Map;
7
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;
16
17 import com.supwisdom.institute.backend.common.core.transmit.user.User;
18 import com.supwisdom.institute.backend.common.core.transmit.user.UserContext;
19
20 import reactor.core.publisher.Mono;
21 import lombok.extern.slf4j.Slf4j;
22
23 @Slf4j
24 public class InMemeryUserDetailsService implements UserDetailsService, ReactiveUserDetailsService {
25
26   @Autowired
27   PasswordEncoder passwordEncoder;
28   
29   @Override
30   public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
31     
32     log.debug("InMemeryUserDetailsService.loadUserByUsername({})", username);
33     
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"));
38
39     Map<String, Object> attributes = new HashMap<String, Object>();
40     
41     MyUser myUser = new MyUser(username, passwordEncoder.encode(username), authorities, attributes);
42     log.debug("myUser is {}", myUser);
43     
44     return myUser;
45   }
46
47   @Override
48   public Mono<UserDetails> findByUsername(String username) {
49
50     log.debug("InMemeryUserDetailsService.findByUsername({})", username);
51     
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"));
56
57     Map<String, Object> attributes = new HashMap<String, Object>();
58     
59     MyUser myUser = new MyUser(username, passwordEncoder.encode(username), authorities, attributes);
60     log.debug("myUser is {}", myUser);
61     
62     List<String> roles = new ArrayList<>();
63     roles.add("ROLE_ADMIN");
64     roles.add("administrator");
65     roles.add("user");
66     User user = new User(username, roles, attributes);
67     UserContext.setUser(user);
68     
69     return Mono.just(myUser);
70   }
71   
72 }