/* 로그인 */
@RequestMapping(value = "login", method = RequestMethod.POST)
public String loginPOST(HttpServletRequest request, MemberVO member, RedirectAttributes rttr) throws Exception {
//System.out.println("login 메서드 진입");
//System.out.println("전달된 데이터 : " + member);
HttpSession session = request.getSession();
MemberVO lvo = memberService.memberLogin(member);
if (lvo == null) { // 아이디, 비밀번호가 일치하지 않는 경우
int result = 0;
rttr.addFlashAttribute("result", result);
logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>> 로그인 실패");
return "redirect:/member/login";
}
session.setAttribute("member", lvo); // 아이디, 비밀번호가 일치할 경우 (로그인 성공)
logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>> 로그인 성공");
return "redirect:/main";
}
memberLogin(member) 호출하여 반환받은 정보를 lvo 변수에 저장 =>(lvo==null) 작성
◇ true(lvo가 null인 경우) - 로그인 실패
=> 리플렉션에 실패를 의미하는 데이터 저장
=> 로그인 페이지 리다이렉트
◆ false(lvo가 null이 아닌 경우) - 로그인 성공
=> 세션에 사용자의 정보 저장
=> 메인 페이지로 리다이렉트
회원의 정보를 반환하는 쿼리문 실행(사용자의 아이디를 조건으로 함)
=> 회원의 정보가 null인지판단
◇ null 인경우 - 로그인 실패
=> 로그인 실패 실행 코드
◆ null 아닌 경우
=> matchers() 문을 통해 데이터베이스 저장된 비밀번호와 제출된 비밀번호 일치 여부 확인
□(true) true인 경우 - 비밀번호 일치
로그인 성공 실행 코드
■(false) false인 경우 - 비밀번호 불일치
로그인 실패 실행 코드
MemberMapper.xml
에 있는 로그인 쿼리를 아래와 같이 수정한다.
<!-- select memberId, memberName, adminCk, money, point from book_member where memberId = #{memberId} and memberPw = #{memberPw} -->
select memberId, memberPw, memberName, adminCk, money, point from book_member where memberId = #{memberId}
/* 로그인 */
@RequestMapping(value = "login", method = RequestMethod.POST)
public String loginPOST(HttpServletRequest request, MemberVO member, RedirectAttributes rttr) throws Exception {
HttpSession session = request.getSession();
String rawPw = "";
String encodePw = "";
MemberVO lvo = memberService.memberLogin(member);
}
HttpSession session = request.getSession();
String rawPw = "";
String encodePw = "";
MemberVO lvo = memberService.memberLogin(member);
if (lvo != null) { // 일치하는 아이디 존재시
} else { // 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
}
HttpSession session = request.getSession();
String rawPw = "";
String encodePw = "";
MemberVO lvo = memberService.memberLogin(member);
if (lvo != null) { // 일치하는 아이디 존재시
} else { // 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
rttr.addFlashAttribute("result", 0);
return "redirect:/member/login";
}
HttpSession session = request.getSession();
String rawPw = "";
String encodePw = "";
MemberVO lvo = memberService.memberLogin(member);
if (lvo != null) { // 일치하는 아이디 존재시
rawPw = member.getMemberPw(); // 사용자가 제출한 비밀번호
encodePw = lvo.getMemberPw(); // 데이터베이스에 저장한 인코딩된 비밀번호
} else { // 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
rttr.addFlashAttribute("result", 0);
return "redirect:/member/login";
}
HttpSession session = request.getSession();
String rawPw = "";
String encodePw = "";
MemberVO lvo = memberService.memberLogin(member);
if (lvo != null) { // 일치하는 아이디 존재시
rawPw = member.getMemberPw(); // 사용자가 제출한 비밀번호
encodePw = lvo.getMemberPw(); // 데이터베이스에 저장한 인코딩된 비밀번호
if (true == pwEncoder.matches(rawPw, encodePw)) { // 비밀번호 일치여부 판단
} else {
}
} else { // 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
rttr.addFlashAttribute("result", 0);
return "redirect:/member/login";
}
HttpSession session = request.getSession();
String rawPw = "";
String encodePw = "";
MemberVO lvo = memberService.memberLogin(member);
if (lvo != null) { // 일치하는 아이디 존재시
rawPw = member.getMemberPw(); // 사용자가 제출한 비밀번호
encodePw = lvo.getMemberPw(); // 데이터베이스에 저장한 인코딩된 비밀번호
if (true == pwEncoder.matches(rawPw, encodePw)) { // 비밀번호 일치여부 판단
} else {
rttr.addFlashAttribute("result", 0);
return "redirect:/member/login";
}
} else { // 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
rttr.addFlashAttribute("result", 0);
return "redirect:/member/login";
}
HttpSession session = request.getSession();
String rawPw = "";
String encodePw = "";
MemberVO lvo = memberService.memberLogin(member);
if (lvo != null) { // 일치하는 아이디 존재시
rawPw = member.getMemberPw(); // 사용자가 제출한 비밀번호
encodePw = lvo.getMemberPw(); // 데이터베이스에 저장한 인코딩된 비밀번호
if (true == pwEncoder.matches(rawPw, encodePw)) { // 비밀번호 일치여부 판단
lvo.setMemberPw(""); // 인코딩된 비밀번호 정보 지움
session.setAttribute("member", lvo); // session에 사용자의 정보 저장
return "redirect:/main"; // 메인페이지 이동
} else {
rttr.addFlashAttribute("result", 0);
return "redirect:/member/login";
}
} else { // 일치하는 아이디가 존재하지 않을 시 ( 로그인 실패 )
rttr.addFlashAttribute("result", 0);
return "redirect:/member/login";
}