Spring 숙련 주차 개인 과제 LV2 - 2

mil nil·2022년 12월 26일
0

TIL (Today I Learned)

목록 보기
40/74

오늘 배운 것

숙련주차 LV2 과제

깃허브 주소: https://github.com/milnil0228/MyBlogBackendServer.git

1. 댓글 생성/수정/삭제 기능 추가

2. 발생한 이슈들

  • 토큰이 header에 정상적으로 입력되지 않았는데도 정상 작동하는 이슈 발견
    • 게시글 작성 기능들에서는 문제 없음
    • 새로 추가한 메모 작성 부분에서만 에러가 발생
      -> 공통된 부분에서 잘못된 코드를 발견
      -> "Token Error 부분이 잘못된 위치와 연결된 것 확인
else {
                throw new IllegalArgumentException("Token Error");
            }

-> 이슈 해결

  • admin 계정인데 다른 계정으로 만든 게시글과 댓글 수정 및 삭제가 불가한 이슈 발생

  • h2-console로 찍어보았을 때 ADMIN 계정으로 정상적으로 만들어진 것 확인

  • Role을 확인하기 직전에 System.out.println(role);을 찍어본 결과 ADMIN이 아닌 USER가 들어가는 것 확인

UserRoleEnum role = post.getUser().getRole();

-> 아래와 같이 수정

UserRoleEnum role = user.getRole();

-> 관리자 권한 적상 작동 확인

예외 처리

@RestControllerAdvice	//예외 처리하는 곳을 의미
public class ExceptionHandler {

/*해당하는 class*/
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
@org.springframework.web.bind.annotation.ExceptionHandler(IllegalArgumentException.class)
    public String handlerIllegalArgumentException(IllegalArgumentException e) {
        return  e.getMessage();
    }
}
  • 에러 메시지와 statusCode:400를 반환할 수 있도록 처리

추가로 수정할 것

  • 이번 메모 관련 기능에서는 토큰 검증이 컨트롤러 부분에서 이루어졌지만 지난번 게시글 관련 기능에서는 토큰 검증을 서비스 부분에서 진행하였다. 토큰 부분만 서비스에서 컨트롤러 쪽으로 옮기는 작업을 진행할 예정이다.
profile
자바 배우는 사람

0개의 댓글