현재 스마트 해상물류 빅데이터 프로젝트 관련 웹사이트 제작을 하고 있음
로그인 기능을 구현하고자 함
Spring Security는 양이 방대하여 공부하고자 하면 거의 한권 분량... 여기서는 필요한 부분만 사용
@Override
public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException{
Optional<SiteUser> _siteUser = this.userRepository.findByemail(email);
if (_siteUser.isEmpty()) {
throw new UsernameNotFoundException("사용자 email을 찾을 수 없습니다.");
}
SiteUser siteUser = _siteUser.get();
List<GrantedAuthority> authorities = new ArrayList<>();
//일단은 모든 최초 가입 사용자는 user로 입장시킨다!
authorities.add(new SimpleGrantedAuthority(UserRole.USER.getValue()));
return new User(siteUser.getEmail(), siteUser.getPassword(), authorities);
}
return시 값인 User는 Spring Security로 이용한 것임
인자는 다음과 같으며 따라서 thymeleaf를 통한 html 작성시 이름을 이메일이라고 해도 username으로 해줘야 된다.