★ PART · BOARD

원시적인 회원가입/로그인

Spring 기초
SMHRD

학습 목표

1. 문제

먼저 의도적으로 어렵게 만들어보자. 평문 저장과 세션 없는 로그인.

2. 새 도구

v2 — 위험한 첫 버전: 비밀번호를 그대로 DB 에 저장. 로그인은 SELECT 비교만. 페이지 옮기면 풀림.

3. 코드

-- v2 의 테이블 CREATE TABLE mymember ( id VARCHAR(50) PRIMARY KEY, pwd VARCHAR(20) NOT NULL ); // com.smhrd.domain.Member @Data @AllArgsConstructor @NoArgsConstructor public class Member { private String id; private String pwd; } // com.smhrd.service.MemberService @Service public class MemberService { @Autowired MemberMapper mapper; public void signup(Member m) { // 평문 그대로! (의도적으로 위험) mapper.insert(m); } public Member login(String id, String pwd) { Member m = mapper.selectOne(id); if (m != null && m.getPwd().equals(pwd)) { return m; } return null; } } // com.smhrd.controller.LoginController @Controller public class LoginController { @PostMapping("/login") public String login(@RequestParam String id, @RequestParam String pwd) { Member m = service.login(id, pwd); if (m != null) return "redirect:/"; return "redirect:/login?error"; // 세션 저장 X — 페이지 이동 시 로그인 풀림 } }

4. 정리

5. Before / After

전 차시

먼저 의도적으로 어렵게 만들어보자. 평문 저장과 세션 없는 로그인.

이번 차시

v2 의 두 가지 문제 — 평문 / 무상태 — 를 직접 체감한다.

학습 확인 체크리스트