- [SpringBoot] 13. 로그인 처리2024년 08월 07일
- Song hyun
- 작성자
- 2024.08.07.:16
728x90반응형[SpringBoot] 13. 로그인 처리
1. 로그인 화면 (SignIn.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- header.jsp --> <%@ include file="/WEB-INF/view/layout/header.jsp"%> <!-- start of content.jsp(xxx.jsp) --> <div class="col-sm-8"> <h2>로그인</h2> <h5>Bank App에 오신걸 환영합니다</h5> <!-- 예외적으로 로그인은 보안 때문에 post로 던지자 --> <form action="/user/sign-in" method="post"> <div class="form-group"> <label for="username">username:</label> <input type="text" class="form-control" placeholder="Enter username" id="username" name="username" value="길동" > </div> <div class="form-group"> <label for="password">Password:</label> <input type="password" class="form-control" placeholder="Enter password" id="password" name="password" value="1234"> </div> <button type="submit" class="btn btn-primary">로그인</button> </form> </div> <!-- end of col-sm-8 --> </div> </div> <!-- end of content.jsp(xxx.jsp) --> <!-- footer.jsp --> <%@ include file="/WEB-INF/view/layout/footer.jsp"%>
2. 로그인 화면 이동 / 기능 처리(@GetMapping/@PostMapping)
/* * 로그인 화면 요청 * 주소설계 : http://localhost:8080/user/sign-in */ @GetMapping("/sign-in") public String singInPage() { // 인증검사 x // 유효성검사 x return "user/signIn"; } /** * 로그인 요청 처리 * 주소설계 : http://localhost:8080/user/sign-in * @return */ @PostMapping("/sign-in") public String signProc(SignInDTO dto) { // 1. 인증 검사 x // 2. 유효성 검사 if(dto.getUsername() == null || dto.getUsername().isEmpty()) { throw new DataDeliveryException(Define.ENTER_YOUR_USERNAME, HttpStatus.BAD_REQUEST); } if(dto.getPassword() == null || dto.getPassword().isEmpty()) { throw new DataDeliveryException(Define.ENTER_YOUR_PASSWORD, HttpStatus.BAD_REQUEST); } // 서비스 호출 User principal = userService.readUser(dto); // 세션 메모리에 등록 처리 session.setAttribute(Define.PRINCIPAL, principal); // 새로운 페이지로 이동 처리 // TODO - 계좌 목록 페이지 이동처리 예정 return "redirect:/index"; }
3. 로그인 기능 - 쿼리문 전송
public User readUser(SignInDTO dto) { // 유효성 검사는 Controller 에서 먼저 하자. User userEntity = null; // 지역 변수 선언 try { userEntity = userRepository.findByUsernameAndPassword(dto.getUsername(), dto.getPassword()); } catch (DataAccessException e) { throw new DataDeliveryException("잘못된 처리 입니다.", HttpStatus.INTERNAL_SERVER_ERROR); } catch (Exception e) { throw new RedirectException("알수 없는 오류", HttpStatus.SERVICE_UNAVAILABLE); } if(userEntity == null) { throw new DataDeliveryException("아이디 혹은 비밀번호가 틀렸습니다.", HttpStatus.BAD_REQUEST); } return userEntity; }
728x90반응형'Springboot' 카테고리의 다른 글
[SpringBoot] 15. 계좌 생성 및 유효성 검사 (0) 2024.08.07 [SpringBoot] 14. 헤더 링크 설정 및 JSTL 태그 활용하기 (0) 2024.08.07 [SpringBoot] 12. 세팅 정리 (0) 2024.08.06 [SpringBoot] 12.코드 정리 (0) 2024.08.06 [SpringBoot] 11. 회원가입 - 트랜잭션, 예외 처리,H2 테이블 (1) 2024.08.06 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)