24.05.30 21:39 작성
·
195
·
수정됨
0
안녕하세요
강의를 진행하던 도중 로그인 후에 jwt는 제대로 발급이 되는데 그 후 발급된 토큰을 사용하여 user-service에 접근을 시도하면 403오류가 뜹니다. 강의대로 제대로 잘 했는데 무엇이 문제인지 모르겠습니다.
답변 2
0
2024. 06. 07. 08:06
안녕하세요, 이도원입니다.
올려주신 2개의 프로젝트에서 사용하는 config-server의 name이 각각 user-service, ecommerce로 다른 것 같습니다. 해당 config-server에 같은 secret 값이 사용되고 있는지 확인해 보시고, token.secret 값을 config-server에 있는 값 대신, 해당 application의 application.yml(또는 properties 파일에 동일한 값을 입력해서 테스트 하는 것도 확인해 보시면 좋을 것 같습니다. JWT가 정상 발급 되었는데, 로그인 시 403 오류가 발생하는 것은 user-service에서 발급한 JWT와 apigateway-service에서 검증 시 사용하는 JWT의 secret이 다르기 때문에 발생하는 경우가 있습니다. 추가로 gateway-ip 설정이 되어 있다면, 해당 PC의 IP외에는 접근이 안될 수 있으니, 이부분도 확인해 보시면 좋을 것 같습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
James.Hong님, 로그인 후 403 에러가 발생하는 원인 중 하나로 Spring Security의 CSRF 보호 기능이 활성화되어 있어서 발생할 수 있습니다. Spring Boot는 기본적으로 Spring Security의 기본 설정에 의존하기 때문에 CSRF 보호가 기본적으로 켜져 있습니다. 이는 POST
, PUT
, DELETE
메소드를 사용하여 Actuator 엔드포인트(예: shutdown 및 loggers 엔드포인트)에 접근할 때 기본 보안 구성을 사용하면 403 (Forbidden) 오류가 발생한다는 것을 의미합니다.
REST API처럼 비브라우저 클라이언트가 사용하는 서비스를 생성하는 경우 CSRF 보호를 완전히 비활성화하는 것이 좋습니다.
CSRF 보호에 대한 자세한 정보는 Spring Security Reference Guide에서 찾아볼 수 있습니다.
로그인 후에 정상적으로 처리되지 않는 부분이 CSRF 보호 기능 때문인지 확인하고, 해당 기능을 비활성화하거나 적절히 구성하여 문제를 해결해보세요.
참고 링크: Spring Boot Reference Documentation 참고 문서
도움이 되었길 바랍니다.