Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 생일축하해 나 자신
- 확진
- 자가격리
- 2022 정보처리기사
- 대외활동
- 다행이야...ㅎ
- 얘들아 잘 지내니
- 지독한 컨셉충
- AWS
- 플러터
- 대학생
- 아싸의 생일
- 모바일 청첩장
- 개강해짐
- 다들 안잊어서
- 다음에 또 만나자
- 정보처리기사2022
- CRUDS
- pem키 분실
- 정보처리기사 2022
- 레이튼 교수와 이상한 마을
- 수제비2022 정리
- 교육봉사
- 뽀모도로 타이머
- FLUTTER
- 스프링 MVC
- N-Queen
- 수제비 2022
- 교수님 과제 이제 그만..
- 재택치료
Archives
- Today
- Total
Rei’s Tech diary
[Spring Boot] JWT Cannot pass null or empty values to constructor 문제 해결하기 본문
프로그래밍/TroubleShooting
[Spring Boot] JWT Cannot pass null or empty values to constructor 문제 해결하기
Reiger 2024. 4. 22. 14:40문제 설명
클레임에서 권한 정보를 가져올 때, 가져온 사용자 정보와 권한 정보를 UserDetails 객체로 생성할때 Cannot pass null or empty values to constructor 오류가 발생했다.
//클레임에서 권한 정보 가져오기
Collection<? extends GrantedAuthority> authorities =
Arrays.stream(claims.get("auth").toString().split(","))
.map(SimpleGrantedAuthority::new).collect(Collectors.toList());
//문제 발생
UserDetails principal = new User(claims.getSubject(),"",authorities);
return new UsernamePasswordAuthenticationToken(principal,"",authorities);
해결 방법
User 엔티티를 UserDetails로 변환하는 메서드인 createUserDetails에서 User 엔티티의 정보를 사용하려 UserDetails를 생성하고 반환하는데, 이때 누락된 부분이 있어 null로 인식하는 것이었다.
private UserDetails createUserDetails(User user){
return User.builder()
.name(user.getUsername())
//email 누락
.email(user.getEmail())
.password(user.getPassword())
.roles(user.getRoles())
.build();
}
결론
피곤할때 코드짜지 말자.
'프로그래밍 > TroubleShooting' 카테고리의 다른 글
[Flutter] 회전 메타데이터 문제 해결 - Android에서 동영상이 이상하게 회전돼서 나올 때 (feat. FFmpeg) (0) | 2025.05.12 |
---|---|
[Flutter] 플러그인 NDK 버전 불일치 문제 해결 (9) | 2025.04.05 |
오버플로우 방지 중간값 계산 (overflow-safe midpoint calculation) (2) | 2025.01.14 |
[Spring Boot] JWT 403 Forbidden 오류 해결하기 (0) | 2024.04.22 |
[AWS] pem키 분실 문제 해결하기 (0) | 2024.01.02 |