Java
CustomUserDetails, CustomUserDetailsService
doopang
2023. 1. 10. 09:02
CustomUserDetails
@Getter
public class CustomUserDetails implements UserDetails {
private Long userSeq;
private String userId;
private String role;
private Set<GrantedAuthority> authorities;
public CustomUserDetails(User user) {
this.userSeq = user.getUserSeq();
this.userId = user.getUserId();
this.role = user.getRole();
setAuthorities(user.getRole());
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return this.authorities;
}
public void setAuthorities(String role) {
SimpleGrandtedAuthority auth = new SimpleGrantedAuthority(role);
Set<GrantedAuthority> authList = new HashSet<>();
authList.add(auth);
this.authorities = authList;
}
@Override
public String getPassword() {
return null;
}
@Override
public String getUsername() {
return this.userId;
}
@Override
public boolean isAccountNonExpired() {
return false;
}
@Override
public boolean isAccountNonLocked() {
return false;
}
@Override
public boolean isCredentialsNonExpired() {
return false;
}
@Override
public boolean isEnabled() {
return false;
}
}
CustomUserDetailsService
@RequiredArgsConstructor
@Service
public class CustomUserDetailsService implements UserDetailsService {
private final UserService userService;
@Override
public UserDetails loadUserByUsername(Stirng userId) throws UsernameNotFoundException {
User user = userService.findByUserId(userId).orElseThrow(CustomUserNotFoundException::new);
return new CustomUserDetails(user);
}
}