-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
서블릿 필터 -인증 체크 강의 중 로그인 오류 시 리다이렉트 url
23.09.12 16:55 작성 조회수 329
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요 수업 중 궁금점이 생겨 질문 남깁니다.
필터로 확인하여 로그인중이 아닐시 로그인 화면으로 넘어왔습니다.
이후 여기서 로그인 에러가 났을 경우
@PostMapping("/login")
public String loginV4(@Validated @ModelAttribute LoginForm form, BindingResult bindingResult,
@RequestParam(defaultValue = "/") String redirectURL,
HttpServletRequest request) {
if (bindingResult.hasErrors()) {
return "login/loginForm";
}
Member loginMember = loginService.login(form.getLoginId(), form.getPassword());
if (loginMember == null) {
bindingResult.reject("loginFail", "아이디 또는 비밀번호가 맞지 않습니다.");
return "login/loginForm";
}
//로그인 성공 처리
//세션이 있으면 있는 세션 반환, 없으면 신규 세션을 생성
HttpSession session = request.getSession();
//세션에 로그인 회원 정보 보관
session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);
return "redirect:" + redirectURL;
}
맨 윗줄에 bindingResult.hasErrors()로 인해 "login/loginForm"으로 이동되는데
이때 redirectURL은 유지가 됩니다. 이 이유를 오류가 있을 시 url을 새로 받는 것이 아니라 또는 redirect가 아닌 return으로 view만 바꿔주었기에 그런 것이라고 이해하는게 맞을까요?
답변을 작성해보세요.
답변 1