작성
·
38
0
현재 지금 프론트와 백엔드로 나누어져 웹 개발을 하고 있습니다 여기서 궁금한점은 선생님 코드를 다 따라 적었는데 프론트에서 로그인 요청을 해서 로그인한 이후 프론트에서 메인 페이지로 보내는데 거기서 다음 기능을 쓰려고 하면 서버 500에러가 뜨고 어나니머스필터가 요청을 받는거 같습니다 저도 정확하게 알 수 없어서 그런데 혹시 CSRF기능을 안써서 어나니머스필터로 가는 것인지 아니면 뭐가 잘못 된건지 알 수 없습니다 좀 알려주시면 감사하겠습니다
답변 2
0
아 저도 프론트 쪽이 아니라서 잘 모르는데 개발자 도구로 확인하니깐 로그인시 session id가 프론트 쪽으로 전달되는 것을 확인을 했습니다 포스트맨으로도 테스트 했을때도여 근데 로그인 이후 프론트에서 다른 기능을 사용하려고 요청을 하려고 할때 혹시 요청에 세션 id를 넣어줘야하거나 해야하나요??
만약 요청이 다른 요청이라면 그렇게 해야 합니다
브라우저는 창을 종료하지 않으면 세션을 계속 유지하지만 포스트맨은 요청마다 새로운 요청일 수 있기 때문에 세션을 유지하지 않습니다
그래서 세션 아이디를 넣고 테스트 해야 할 수도 있습니다
로그인 하고 응답으로 set cookie해서 세션 아이디가 프론트로 날아가는 것을 확인했다고 말씀드렸는데 혹시 브라우저에서 저장을 못하는 경우도 있나요? 구글 크롬 확장프로그램으로 쿠키 확인하는 프로그램을 사용하였는데 제가 알기로는 쿠키로 세션 아이디가 넘어오면 브라우저에 프론트에서 뭐 할 필요 없이 자동 저장된다고 들었고 브라우저에서도 다시 백으로 다시 요청할 때에도 그 값이 자동적으로 들어간다고 들었습니다 혹시 브라우저에 쿠키가 저장이 안되는 그런 경우가 있다면 어떻게 하면 좋을지 마지막으로 알려주시면 감사하겠습니다
저희는 http://localhost:8080(백), http://localhost:3000(프론트)로 진행중입니다.
0
안녕하세요, 인프런 AI 인턴입니다.
dkslasdud님, 현재 발생하고 있는 문제는 Spring Security 설정에서 인증 상태가 제대로 유지되지 않아서 발생하는 것 같습니다. 다음의 몇 가지 점을 확인해 보시면 문제 해결에 도움이 될 수 있습니다:
CSRF 설정 확인: CSRF 보호가 활성화되어 있지 않으면, 세션을 통한 상태 유지가 실패할 수 있습니다. 특히 POST 요청시에, CSRF 토큰이 필요합니다. 로그인 후 다른 요청이 실패한다면 CSRF 토큰이 제대로 전달되는지 확인해보세요. 만약 CSRF를 비활성화했다면 (학습 목적이라면 괜찮지만), 이를 신중히 고려해야 합니다.
세션 설정 확인: 세션이 유지되는지 확인하세요. 만약 세션이 생기지 않거나 유지되지 않는다면, 이는 인증 정보가 담기지 않아서 생기는 문제일 수 있습니다. 서버측 세션 설정을 확인하시고, 클라이언트와의 세션ID가 일치하는지 확인해 보세요.
Spring Security 설정 확인: SecurityFilterChain
설정에서 적절한 URL 패턴에 대해 인증 과정을 거치는지 확인해야 합니다. 인증이 필요한 페이지에 대해 적절하게 접근 제한이 설정되어 있는지 점검하세요.
Spring Security Debugging: Spring Security의 디버그 모드를 활성화하면 어떤 필터가 어떤 요청을 처리하고 있는지를 로그로 확인할 수 있습니다. 이를 통해 어떤 필터가 문제를 일으키고 있는지 더 명확하게 파악할 수 있습니다.
로그 확인: 서버 로그나 디버깅 툴을 통해 유효한 오류 메시지가 있는지 확인하세요. 특히, Authentication
객체가 Anonymous
로 남아있는 것은 인증이 올바르게 설정되지 않은 것일 수 있습니다.
관련 사례로 아래의 질문들을 참고하시면서 설정을 다시 한번 검토해 보시면 좋을 것 같습니다:
위의 링크들을 참고하시고 필요한 경우, 코드의 특정 부분들을 더 구체적으로 살펴보시면 문제 해결에 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
프런트 쪽은 제 분야가 아니라서 테스트 하기 어렵습니다
간단하게 자바스크립트로 어떤 요청을 하고 있는지 작성 부탁드립니다