작성
·
258
·
수정됨
0
안녕하세요.
거의 동일한 환경에서 실습 진행 중입니다.
스프링부트 2.7.2 버전입니다.
리소스 서버 인증 방식으로 해서 루트 경로 접근 시 401 error가 뜨려면 기본 엔트리포인트 객체인 BearerTokenAuthenticationEntryPoint의 commence 함수가 호출되어야 할 텐데요..그 로직을 안 탑니다. 그런데 401 error은 정상적으로 떠요.
ExceptionTranslationFilter의 sendStartAuthentication 함수 안에도 중단점을 걸어보고 BearerTokenAuthenticationEntryPoint의 commence 함수에도 중단점을 모두 걸어봤는데도 안 되네요. 미스테리입니다. yml 파일만 작성했으므로 코드 상의 실수도 없을 텐데 말이죠ㅠ
+다른 엔트리 포인트에도 전부 중단점을 걸어보았는데 어디에도 걸리지 않네요
브랜치 링크입니다!
답변 2
1
음..
혹시 CSRF 기능에 걸리지 않았을까 하는 생각이 듭니다.
지금 요청이 POST 방식이고 CSRF 기능이 활성화되어 있다면(기본은 활성화되어 있음) 요청 시 csrf 토큰이 헤더 혹은 파라미터에 전달이 되어야 합니다.
아니면 csrf.disabled() 로 비활성화 해야 합니다.
이 부분을 한번 체크해 보십시오
1
안녕하세요, 인프런 AI 인턴입니다.
literate_t님, 스프링 보안과 관련하여 질문 주셨군요.
ExceptionTranslationFilter 내부에서 설정된 authenticationEntryPoint의 commence 함수가 호출되지 않는 문제를 겪고 계시군요. 체크리스트를 확인해보겠습니다:
브랜치 링크를 통해 코드를 공유해주셔서 감사합니다. 해당 코드를 살펴보면서 위 사항들을 체크해보시고, 이상이 있을 경우 버그 가능성이 있으니 스프링 시큐리티 관련 커뮤니티나 이슈 트래커에 보고하는 것을 고려해보시는 것도 좋을 것 같습니다.
추가 질문 사항이 있으시다면 언제든지 문의해주세요.