From f44ea8b3f69d5ba5d93c5a8c75cf4360ae986ffe Mon Sep 17 00:00:00 2001 From: yohanii Date: Tue, 27 Aug 2024 17:38:31 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=201=20Basic=20Auth=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cholog/auth/ui/BasicLoginController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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..217e7c53 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 @@ -31,8 +31,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(); From dd38789c64f22813203de0b50d79d937f1943023 Mon Sep 17 00:00:00 2001 From: yohan Date: Tue, 27 Aug 2024 19:34:32 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feat:=202=20Session=20Login=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cholog/auth/ui/SessionLoginController.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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..c3f770c4 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 @@ -36,14 +36,15 @@ public SessionLoginController(AuthService authService) { @PostMapping("/login/session") public ResponseEntity sessionLogin(HttpServletRequest request, HttpSession session) { // TODO: HttpRequest로 받은 email과 password 추출 - String email = ""; - String password = ""; + String email = request.getParameter(USERNAME_FIELD); + String password = request.getParameter(PASSWORD_FIELD); if (authService.checkInvalidLogin(email, password)) { throw new AuthorizationException(); } // TODO: Session에 인증 정보 저장 (key: SESSION_KEY, value: email값) + session.setAttribute(SESSION_KEY, email); return ResponseEntity.ok().build(); } @@ -58,7 +59,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 = (String) session.getAttribute(SESSION_KEY); MemberResponse member = authService.findMember(email); return ResponseEntity.ok().body(member); } From 9c6373818a6d602bc785b24aa517504c9a19ae55 Mon Sep 17 00:00:00 2001 From: yohan Date: Tue, 27 Aug 2024 19:55:09 +0900 Subject: [PATCH 3/3] =?UTF-8?q?feat:=203=20Token=20Login=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cholog/auth/ui/TokenLoginController.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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..9a80ee46 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,9 @@ public TokenLoginController(AuthService authService) { * } */ @PostMapping("/login/token") - public ResponseEntity tokenLogin() { + public ResponseEntity tokenLogin(@RequestBody TokenRequest request) { // TODO: email, password 정보를 가진 TokenRequest 값을 메서드 파라미터로 받아오기 (hint: @RequestBody) - TokenRequest tokenRequest = null; + TokenRequest tokenRequest = request; TokenResponse tokenResponse = authService.createToken(tokenRequest); return ResponseEntity.ok().body(tokenResponse); } @@ -52,7 +53,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); }