오늘 팀 프로젝트간에 일어났던 문제다
jwt와 security를 정확히 잘 파악하지 못해서 팀 프로젝트에서 내가 인증 인가, 및 유저 도메인을 맡기로했다
그런데 역시나 문제가 발생했다
로그인을 하는데 unsuccessfulAuthentication로 계속 빠지는 것이다.
그래서 디버깅을 해봤는데
AccountStatus???
분명 이런 걸 관리하는 곳이 있었는데
@Getter
@RequiredArgsConstructor
public class UserDetailsImpl implements UserDetails {
private final User user;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
UserRoleEnum role = user.getRole();
String authority = role.getAuthority();
SimpleGrantedAuthority simpleGrantedAuthority = new SimpleGrantedAuthority(authority);
Collection<GrantedAuthority> authorities = new ArrayList<>();
authorities.add(simpleGrantedAuthority);
return authorities;
}
@Override
public String getPassword() {
return user.getPassword();
}
@Override
public String getUsername() {
return user.getEmail();
}
@Override
public boolean isAccountNonExpired() {
return false;
}
@Override
public boolean isAccountNonLocked() {
return false;
}
@Override
public boolean isCredentialsNonExpired() {
return false;
}
@Override
public boolean isEnabled() {
return false;
}
}
바로 이 부분이었다
자세히 보니 계정 상태를 관리하는 부분이 모두 return false로 되어있는것
true로 바꿔주고 다시 테스트를 해봤다
우선 해결!
음.. 근데 저 부분이 뭔가 유저 계정 상태를 관리하는 로직을 짜야되는 부분인 거 같은데 현재 프로젝트 서비스에서는 계정 상태 관리는 구현하지 않아서 나중에 jwt security 더 자세히 공부할 때 배워야겠다고 생각했다..
'TIL' 카테고리의 다른 글
TIL 2023-12-08 getWriter() has already been called for this response (0) | 2023.12.08 |
---|---|
TIL 2023-12-07 Refresh Token 쓰는 이유 및 DB로 Redis를 쓰는 이유 (0) | 2023.12.07 |
TIL 2023-12-05 Entity에 대한 JPA 테스트는 어떻게 할까? (0) | 2023.12.05 |
TIL 2023-12-01 Mockito any()를 쓰는 이유 (0) | 2023.12.01 |
TIL 2023-11-30 JUnit5 기본 문법 (0) | 2023.11.30 |