Page 497 - MDP2022-3
P. 497

new  RuntimeException("존재하지  않는  댓글입니다."));
                     }


             }


             com.webmister.semicolon.service.CustomUserInfoDetailsService
             import  com.webmister.semicolon.domain.UserInfo;
             import  com.webmister.semicolon.repository.UserInfoRepository;
             import  org.springframework.security.core.GrantedAuthority;
             import  org.springframework.security.core.authority.SimpleGrantedAuthority;
             import  org.springframework.security.core.userdetails.UserDetails;
             import  org.springframework.security.core.userdetails.UserDetailsService;
             import  org.springframework.security.core.userdetails.UsernameNotFoundException;
             import  org.springframework.stereotype.Component;
             import  org.springframework.transaction.annotation.Transactional;


             import  java.util.List;
             import  java.util.stream.Collectors;


             @Component("userInfoDetailsService")
             public  class  CustomUserInfoDetailsService  implements  UserDetailsService  {
                     private  final  UserInfoRepository  userInfoRepository;


                     public  CustomUserInfoDetailsService(UserInfoRepository  userInfoRepository)  {
                             this.userInfoRepository  =  userInfoRepository;
                     }


                     @Override
                     @Transactional
                     public  UserDetails  loadUserByUsername(final  String  userEmail)  {
                             return  userInfoRepository.findOneWithAuthoritiesByUserEmail(userEmail)
                                             .map(userInfo  ->  createUser(userEmail,  userInfo))
                                             .orElseThrow(()  ->  new  UsernameNotFoundException(userEmail  +  "  ->  데이터
             베이스에서  찾을  수  없습니다."));
                     }


                     private  org.springframework.security.core.userdetails.User  createUser(String  userEmail,
             UserInfo  userInfo)  {
                             if  (!userInfo.isActivated())  {
                                     throw  new  RuntimeException(userEmail  +  "  ->  활성화되어  있지  않습니다.");
                             }


                             List<GrantedAuthority>  grantedAuthorities  =  userInfo.getAuthorities().stream()
                                             .map(authority  ->  new  SimpleGrantedAuthority(authority.getAuthorityName()))
                                             .collect(Collectors.toList());
   492   493   494   495   496   497   498   499   500   501   502