히콩쓰 개발 일지
Controller Test 403 forbidden 해결 본문
Controller 테스트 코드를 작성하던 중 authentication에 userDetails를 넣어줬음에도 불구하고 403 forbidden 에러가 발생했다.
에러 코드를 살펴보니, 아래 사진과 같이 MockHttpServletRequest에 CSRF 토큰이 들어간 것을 확인할 수 있었다.

하지만 본 프로젝트에서는 아래와 같이 WebSecurityConfig 에서 csrf를 사용하지 않도록 설정했기 때문에 CSRF 토큰이 설정된 것이 더욱 이상하다고 생각했다.

Controller 테스트를 위해 강의에서 나온대로 코드를 작성했고, 이 과정에서 WebSecurityConfig가 제외된 것을 확인할 수 있다.

결과적으로, WebSecurityConfig가 제외되면서 csrf를 disable한 것이 같이 제외됐기 때문에 CSRF 토큰이 설정된 것으로 유추할 수 있었다.
따라서, 아래와 같이 .with(csrf()) 코드를 추가했더니 테스트에 성공했다 !

사실 Security 쪽은 어떤 이유에서 발생했고 왜 이렇게 사용하는지 잘 몰라서 원인을 제대로 분석하지 못했다.
조금 더 노력해서 원인을 파악하고 분석해서 정확히 이해하고 넘어갈 수 있도록 노력하겠다!
'Spring' 카테고리의 다른 글
[Spring Security] 권한을 올바르게 설정했는데 403 에러가 날 경우 고려해야 할 점 (2) | 2023.12.12 |
---|---|
Primitive Type(원시타입)과 Wrapper Class(래퍼 클래스) 의 Getter (1) | 2023.11.22 |
Spring Boot 프로젝트 Dto 사용 시 HTTP 406 Error 해결 방법! (0) | 2023.11.21 |
@ReqestBody String 사용 시 Json이 그대로 입력되는 이유 (1) | 2023.11.14 |
[Consider declaring it as object wrapper for the corresponding primitive type] 발생 원인과 해결 방법 (0) | 2023.11.10 |