공부/그룹 스터디 28

[5회차 02] 로그아웃

로그 아웃main.jsp그리고 LoginController에서 setViewName을 main으로 하였으니 views폴더 안에 main.jsp를 생성해 줍니다 memberId = 그러고 위 코드처럼 로그인하면 memberId값이 나오게 해주고 로그인 버튼을 만들어줍니다로그아웃을 누르면 logout.do로 갑니다그러면 이제 LoginController에 logout.do를 만들러 가야겠죠?LoginController위에 말한 logout.do를 맵핑해주고 로그아웃을 했으면 세션값을 없애도록 추가해줍니다@RequestMapping("/logout.do")public ModelAndView logout(HttpServletRequest request) { ModelAndView mv = n..

[4회차 과제 03] 중복아이디 처리

과제 03중복아이디 알림이제 회원가입 시 중복 아이디면 회원가입 실패 메시지가 나오게 해보겠습니다MemberDao먼저 memberId값을 조회하는 쿼리를 작성합니다public String getMemberId(String memberId) { //아이디값 찾기 String sql = "SELECT member_id FROM forum.member WHERE member_id ='" + memberId + "'"; return queryForObject(sql, String.class);}이제 이걸 JoinService에서 실행시킵니다JoinServicepublic int join(HashMap params) { String passwd = params.get("pass..

[4회차 과제 02] NullPointException 처리하기

과제 02NullPointException 처리하기이제 인증을 완료하면 auth_yn이 "Y"로 바뀌었기 때문에 인증완료한 인증메일로 다시 접속하면 auth_yn = "N"라는 조건에서 걸리기에 500에러 화면이나오며 NullPointException이 발생합니다 그렇기에 이제 이 NullPointException 예외처리가 필요합니다JoinService예외처리는 간단하게 try-catch를 사용해 보겠습니다public boolean emailAuth(String uri) { boolean result; try { // true반환 MemberAuthDto memberAuthDto = memberAuthDao.getMemberAuthDto(uri); //인증 유효..

[4회차 과제 01] 인증 이메일 완료 후 DB auth_yn(인증여부) 바꾸기

과제 01인증 이메일 완료 후 DB auth_yn(인증여부)를 "Y"로 바꾸기전에 만든 회원가입 인증메일을 받고 인증하기를 하였을 경우 "인증 완료" 메시지는 나오지만 DB에 있는 인증여부(auth_yn)는 바꾸지 않았습니다 이걸 과제로 변경해 보겠습니다MemberAuthDaoMemberAuthDao에 update쿼리를 작성해보겠습니다처음에 WHERE 조건을 uri로 하려했다기 너무 길기도해서 seq로 했는데 문제 없이 작동 잘되었습니다. 쿼리문은 간단하게 작성하였습니다 forum의 member_auth 테이블에서 member_seq이 같으면 auth_yn = 'Y'로 변경 //인증 완료되면 auth_yn='y'로 바꾸기 public int updateAuthInfo(MemberAuthDto m..

[4회차 03] 인증 유효성 검사

인증 유효 검사인증 유효한지 검사 = 유효시간보다 작아야유효 시간 비교 => 숫자 timestamp자바에서 시간비교는 timestamp로 하며 sql에서는 DateTime으로 합니다그러므로 expire_dtm 쿼리의 Data Type을 DateTime으로 변경해 줍니다MemberAuthDaopublic int addAuthInfo(MemberAuthDto dto) { String sql ="INSERT INTO forum.member_auth " + "(member_seq, auth_num, auth_uri, reg_dtm, expire_dtm, auth_yn) " + "VALUES(" + dto.getMemberSeq() ..

[4회차 02] 인증메일 구조 만들기 - 회원가입시 인증 메일 발송

회원가입 시 인증 메일 보내기 설정java에서 메일을 발송 하려면 라이브러리가 2개 필요합니다 org.springframework spring-context-support 5.3.34 com.sun.mail javax.mail 1.6.2MVN repository에 가서 아래 3가지를 pom.xml에 추가해줍니다spring-context 5.3.34 (spring-context는 이미 전에 추가)javax.mail 1.6.2spring-context-support 5.3.34pom.xml 5.3.34 org.springframework spring-web ${spri..

[4회차 01] 인증메일 구조 만들기 - 인증번호 만들어 DB에 넣기

수업내용회원가입하면 이메일 보내기이메일 인증하기이메일 인증이메일 인증 장점인증을 하지 않으면 메인화면 접속을 막을 수 있다인증코드는 유니크 해야한다메일발송에 링크는 난수여야한다겹치면 A라는 사용자 인증해야하는데 B사용자가 인증이 될 수도 있다링크 클릭시 이게 A사용자인지 어떻게 아는가?링크와 사용자를 엮어줘야한다링크에 유효기간을 설정링크를 보냈지만 안누를 경우를 대비해 링크에 유효기간을 설정이 유효시간은 어떻게 관리할 것인가?사용자가 이 링크를 눌렀을때 유효한지 어떻게 체크할 것인가?Table (member_auth)auth_seq : 인증 시퀀스 올라가는 곳member_seq : 회원 번호auth_num : 인증 문자auth_uri : 인증용..

[3회차 06] 비밀번호 암호화

전에 회원가입해서 값을 DB에 넣는걸 해보았는데요이번에는 DB에 값을 넣을때 비밀번호값을 암호화해서 넣어보겠습니다 at.favre.lib bcrypt 0.10.2 먼저 암호화를 위해 https://mvnrepository.com 에서 BCrypt Password Hashing Function 라이브러리 최신버전을 pom.xml에 추가 & maven 업데이트 해줍니다public int join(HashMap params) { String passwd = params.get("passwd"); String encPasswd = BCrypt.withDefaults().hashToString(12, passwd.toCharArra..

[3회차 05] DB table에 값 넣기, 수동 bean 등록

jsp -> controller -> service -> dao -> DB 이전까지 jsp와 controller만 사용했는데요 이제 DB table에 값을 넣어주기 위해 먼저 service 패키지를com.portfolio.www.service를 만들고 JoinService.java파일을 안에 만들겠습니다public class JoinService {public int join(HashMap params) { return 0;} Bean 등록 방법어노테이션으로 자동 등록수동 등록주로 비지니스 로직은 자동으로 할 수 있지만, 설정파일은 bean을 수동으로 등록해줘야합니다  web.xml로 가서 아래에 아래코드를 추가해줍니다. org.springframework.w..