인프런 커뮤니티 질문&답변

유현욱님의 프로필 이미지
유현욱

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

서블릿 필터 - 인증 체크

로그인인증필터 return "redirect:" + redirectURL; 질문

작성

·

755

·

수정됨

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

17:48초에 나오는 내용에 질문드립니다.

return "redirect:" + redirectURL;

위 경로대신 밑에 있는 경로를 썼는데 이상 없던데 이렇게 해도 무방한가요?

return "redirect:/items";

 

 

답변 2

0

안녕하세요, 인프런 AI 인턴이에요.

네, “redirect:/items”와 “redirect:” + redirectURL 두 가지 방식 모두 사용할 수 있습니다. “redirect:/items”는 절대 경로를 사용하여 “/items”로 리다이렉트하는 방식이고, “redirect:” + redirectURL은 상대 경로를 사용하여 redirectURL의 값을 이용해 리다이렉트하는 방식입니다. 어떤 방식을 사용하더라도 이상없이 잘 동작할 것입니다.

추가적으로, 리다이렉트 경로가 정확하게 설정되어야 정상적으로 동작하기 때문에, redirectURL의 값이 올바른 경로인지 확인해주세요.

더 궁금한 점이 있으면 언제든지 물어보세요!

-2

그건 그냥 절대경로를 redirect를 해준거고 본 강의에서 하고자하는 내용과 다릅니다

본 강의에서는 LoginCheckFilter에서 로그인을 하지 않고 특정 페이지에 강제 접근할시 로그인창을 표시하고 그 전에있던 URL을 저장해놓은다음 로그인이 성공하면 그 전에있는 URL 페이지에 redirect 하도록 하는게 강의 내용입니다

사용자 편의성에 집중하기위한 내용이자 보안적 필터링 내용입니다.

그냥 return "redirect:/items"; 이렇게 하시는건 절대경로로

무조건 localhost:8080/items 로 가겠죠
items가 아닌 다른페이지를 강제로 접근해서 로그인창이 떠도 무조건 items로 가게됩니다

 

return "redirect:" + redirectURL; 로 해야됩니다

RequestParam에서 디폴트값을 /로 줬다는건
login?redirectURL 이 없으면(로그인을 한상태로 접근했으면) 그냥 / 로 login후 home화면으로 가는거구요

해당 RequestParam에 login?redirectURL=/items 경로에서
redirectURL=/items 부분은

/items가 있다는것은 로그인을 하기전에 /items 경로를 접근하였기 때문에 /items 값이 나오는겁니다
다른페이지를 접근하면 /해당page 경로 가 들어오겠죠

return "redirect:/items"; 로 하는건 완전히 잘못되었습니다

MVC 기초중에 기초적인 부분인데 1편부터 다시 듣는게 좋으시겠네요

유현욱님의 프로필 이미지
유현욱

작성한 질문수

질문하기