diff --git a/spring-auth-1/initial/src/main/java/cholog/auth/ui/BasicLoginController.java b/spring-auth-1/initial/src/main/java/cholog/auth/ui/BasicLoginController.java index 9f956bb5..f33e2963 100644 --- a/spring-auth-1/initial/src/main/java/cholog/auth/ui/BasicLoginController.java +++ b/spring-auth-1/initial/src/main/java/cholog/auth/ui/BasicLoginController.java @@ -30,9 +30,9 @@ public BasicLoginController(AuthService authService) { */ @GetMapping("/members/me/basic") public ResponseEntity findMyInfo(HttpServletRequest request) { - // TODO: authorization 헤더의 Basic 값에 있는 email과 password 추출 (hint: authorizationExtractor 사용) - String email = ""; - String password = ""; + AuthInfo authInfo = authorizationExtractor.extract(request); + String email = authInfo.getEmail(); + String password = authInfo.getPassword(); if (authService.checkInvalidLogin(email, password)) { throw new AuthorizationException(); diff --git a/spring-auth-1/initial/src/main/java/cholog/auth/ui/SessionLoginController.java b/spring-auth-1/initial/src/main/java/cholog/auth/ui/SessionLoginController.java index a88c9509..31a1d39c 100644 --- a/spring-auth-1/initial/src/main/java/cholog/auth/ui/SessionLoginController.java +++ b/spring-auth-1/initial/src/main/java/cholog/auth/ui/SessionLoginController.java @@ -35,15 +35,15 @@ public SessionLoginController(AuthService authService) { */ @PostMapping("/login/session") public ResponseEntity sessionLogin(HttpServletRequest request, HttpSession session) { - // TODO: HttpRequest로 받은 email과 password 추출 - String email = ""; - String password = ""; + Map paramMap = request.getParameterMap(); + String email = paramMap.get(USERNAME_FIELD)[0]; + String password = paramMap.get(PASSWORD_FIELD)[0]; if (authService.checkInvalidLogin(email, password)) { throw new AuthorizationException(); } - // TODO: Session에 인증 정보 저장 (key: SESSION_KEY, value: email값) + session.setAttribute("SESSION_KEY", email); return ResponseEntity.ok().build(); } @@ -57,8 +57,7 @@ public ResponseEntity sessionLogin(HttpServletRequest request, HttpSession */ @GetMapping("/members/me/session") public ResponseEntity findMyInfo(HttpSession session) { - // TODO: Session을 통해 인증 정보 조회 (key: SESSION_KEY) - String email = ""; + String email = session.getAttribute("SESSION_KEY").toString(); MemberResponse member = authService.findMember(email); return ResponseEntity.ok().body(member); } diff --git a/spring-auth-1/initial/src/main/java/cholog/auth/ui/TokenLoginController.java b/spring-auth-1/initial/src/main/java/cholog/auth/ui/TokenLoginController.java index ed0f81ff..59def57b 100644 --- a/spring-auth-1/initial/src/main/java/cholog/auth/ui/TokenLoginController.java +++ b/spring-auth-1/initial/src/main/java/cholog/auth/ui/TokenLoginController.java @@ -10,6 +10,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @RestController @@ -35,9 +36,7 @@ public TokenLoginController(AuthService authService) { * } */ @PostMapping("/login/token") - public ResponseEntity tokenLogin() { - // TODO: email, password 정보를 가진 TokenRequest 값을 메서드 파라미터로 받아오기 (hint: @RequestBody) - TokenRequest tokenRequest = null; + public ResponseEntity tokenLogin(@RequestBody TokenRequest tokenRequest) { TokenResponse tokenResponse = authService.createToken(tokenRequest); return ResponseEntity.ok().body(tokenResponse); } @@ -51,8 +50,7 @@ public ResponseEntity tokenLogin() { */ @GetMapping("/members/me/token") public ResponseEntity findMyInfo(HttpServletRequest request) { - // TODO: authorization 헤더의 Bearer 값을 추출 (hint: authorizationExtractor 사용) - String token = ""; + String token = authorizationExtractor.extract(request); MemberResponse member = authService.findMemberByToken(token); return ResponseEntity.ok().body(member); }