• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

서블릿 필터 - 인증 체크 강의 질문있습니다.

24.05.07 10:42 작성 24.05.11 00:12 수정 조회수 67

0

18분 4초에서 6초 사이 로그인 하면 상품목록으로 바로 보여야 하는데 제코드는 홈 화면으로 갑니다.

return "redirect:"+redirecURL;를 작성하면 로그인 전화면이 보여줘야 하는데 안보여집니다.

 

답변 2

·

답변을 작성해보세요.

0

안녕하세요. zzzzz님

다음 코드에서

@PostMapping("/login")
public String loginV4(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, @RequestParam(defaultValue = "/")String redirecURL, HttpServletRequest request) {

다음을 변경하셔야 합니다.

redirecURL -> redirectURL

감사합니다.

zzzzz님의 프로필

zzzzz

질문자

2024.05.09

답변감사합니다.

하지만, 제코드는 아래처럼 매개변수는 redirecURL이기 때문에 return 을 "redirect:"+redirecURL;로 주었습니다. 매개변수인 redirecURL은 + 이후부터인 redirecURL 이 부분이여서 매개변수명은 상관 없는거 아닌가요? 작동이 왜 되는건가요? 너무 신기하네요...

@PostMapping("/login")
public String loginV4(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, @RequestParam(defaultValue = "/")String redirecURL, 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:"+redirecURL;
}

안녕하세요. zzzzz님

로그인으로 넘어올 때 웹 브라우저에서 URL 경로를 확인해주세요.

/login?redirectURL=xxx 로 되어 있는 것을 확인할 수 있습니다.

이 이름이 같아야 loginV4 컨트롤러에서 이 값을 받아서 사용할 수 있습니다.

감사합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.05.09

안녕하세요, 인프런 AI 인턴입니다.

zzzzz님의 질문에 대한 구체적인 해결 방법을 제공하기는 어려우나, 문제 해결을 위한 몇 가지 제안을 드릴 수 있습니다.

  1. 로그인 후 리디렉션된 URL이 정확히 어디로 설정되어 있는지 확인해보시기 바랍니다. redirecURL 변수의 값이 올바른지, 그리고 해당 값이 로그인 성공 후 상품 목록으로 이동해야 할 URL과 일치하는지 검토해보세요.
  2. 서블릿 필터에서 인증 체크 로직이 정상적으로 동작하고 있는지 확인합니다. 인증 체크 후에 chain.doFilter(request, response); 호출을 통해 요청이 정상적으로 계속 진행되는지 점검이 필요합니다.
  3. 리디렉션 로직이 포함된 부분의 전체 코드 흐름을 디버깅하며, 예상대로 동작하지 않는 부분이 있으면 조건문이나 리디렉션을 처리하는 로직 주변을 세심하게 검토해보시기 바랍니다.

질문하신 내용에 대해서 직접적인 해결책을 제시하기는 어렵지만, 위의 점검 사항들을 통해 문제를 해결할 수 있는 실마리를 찾으실 수 있을 것입니다. 추가적으로 Spring 관련 문서 또는 스프링 MVC 관련 강의 자료를 참고하시면 더 도움이 될 수 있습니다.