Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

메모장

CustomUserDetails, CustomUserDetailsService 본문

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);
  }
}

'Java' 카테고리의 다른 글

게시판 파일 수정  (0) 2023.01.11
@AuthenticationPrincipal 이용한 게시판 접근 제한  (0) 2023.01.10
Optional  (0) 2023.01.09
BigDecimal  (0) 2023.01.05
테스트 코드 기본 세팅  (0) 2023.01.04