메모장
CustomUserDetails, CustomUserDetailsService 본문
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);
}
}
'Java' 카테고리의 다른 글
게시판 파일 수정 (0) | 2023.01.11 |
---|---|
@AuthenticationPrincipal 이용한 게시판 접근 제한 (0) | 2023.01.10 |
Optional (0) | 2023.01.09 |
BigDecimal (0) | 2023.01.05 |
테스트 코드 기본 세팅 (0) | 2023.01.04 |