403 Forbidden 이 나오니 정상 동작입니다.

200 OK 응답으로 잘 성공했습니다.

(1) UserController
@PostMapping("/signup")
public ResponseEntity<?> registerUser(@RequestBody User user) {
userService.registerUser(user);
return ResponseEntity.ok("User registered successfully");
}
(2) UserService
public User registerUser(User user) {
user.setPassword(passwordEncoder.encode(user.getPassword()));
return userRepository.save(user);
}
(3) JPA를 통해 저장
에러 발생함




맞네, 확인해 보니 application.yml에
시크릿키에 - 문자가 포함되어 있음

이게 안되는줄은 몰랐네
그래서 시크릿 키 수정하고 다시함
secret: yoursecretkey
ㅎㅎㅎㅎ 수정했는데 또 안됌

많이 배우네
이유는 72 bits 인데 HS512 알고리즘에 적절치 않다는 듯.. 시크릿키를 바꿔야겠군
다시 수정
yoursecretkeyyoursecretkeyyoursecretkeyyoursecretkeyyoursecretkeyyoursecretkeyyoursecretkeyyoursecretkeyyoursecretkey
이번엔 되겠지?
두둥...
성공!!!


그런데 또 오류네!?
기존 코드를
@GetMapping
public List<Todo> getUserTodos(Authentication authentication) {
User user = (User) authentication.getPrincipal();
return todoService.getTodosByUser(user.getId());
}
아래와 같이 변경
@GetMapping
public List<Todo> getUserTodos(Authentication authentication) {
UserDetailsImpl userDetails = (UserDetailsImpl) authentication.getPrincipal(); // UserDetailsImpl로 캐스팅
Long userId = userDetails.getId(); // UserDetailsImpl에서 사용자 ID 추출
return todoService.getTodosByUser(userId); // ID 기반으로 투두 리스트 가져오기
}
이제 정상동작!


등록은 되는데

이렇게 계속 반복하여 연관관계에 있는 객체가 순환참조하고 있어.. 이러면 안되는데?
아! 방법은 DTO로 모든 걸 처리하자!!!

UserDetailsImpl와 Principal 객체는 뭔 차이야?