From e34003a2b02939e03a2dda6194187ab0003692e5 Mon Sep 17 00:00:00 2001 From: "sunny.park" Date: Fri, 30 Aug 2024 03:48:25 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat=20:=20spring-auth-1=20-=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=EC=9E=90=20=EC=9D=B8=EC=A6=9D=20=EB=B0=A9=EC=8B=9D=20?= =?UTF-8?q?:=20Basic=20Auth?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit c5f029fe7f319e9976eb45c9574a65424b172fd8) --- .../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 8feac97568ae4f936138975e7a25dd0da6744332 Mon Sep 17 00:00:00 2001 From: "sunny.park" Date: Fri, 30 Aug 2024 03:48:33 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feat=20:=20spring-auth-1=20-=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=EC=9E=90=20=EC=9D=B8=EC=A6=9D=20=EB=B0=A9=EC=8B=9D=20?= =?UTF-8?q?:=20Session=20Login?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 2ab682c2286055b961565853757e9b5e6a734e6f) --- .../main/java/cholog/auth/ui/SessionLoginController.java | 8 +++++--- 1 file changed, 5 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..59336b61 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,16 @@ 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(); } @@ -58,7 +60,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 2eb1f08e76c82a48f946028c683ef0101e9318c2 Mon Sep 17 00:00:00 2001 From: "sunny.park" Date: Fri, 30 Aug 2024 03:48:39 +0900 Subject: [PATCH 3/3] =?UTF-8?q?feat=20:=20spring-auth-1=20-=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=EC=9E=90=20=EC=9D=B8=EC=A6=9D=20=EB=B0=A9=EC=8B=9D=20?= =?UTF-8?q?:=20Token=20Login?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 32c13410deb6a594cde7b22cf6b8393b6091f536) --- .../src/main/java/cholog/auth/ui/TokenLoginController.java | 6 +++--- 1 file changed, 3 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..ec028f05 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,8 @@ public TokenLoginController(AuthService authService) { * } */ @PostMapping("/login/token") - public ResponseEntity tokenLogin() { + public ResponseEntity tokenLogin(@RequestBody TokenRequest tokenRequest) { // TODO: email, password 정보를 가진 TokenRequest 값을 메서드 파라미터로 받아오기 (hint: @RequestBody) - TokenRequest tokenRequest = null; TokenResponse tokenResponse = authService.createToken(tokenRequest); return ResponseEntity.ok().body(tokenResponse); } @@ -52,7 +52,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); }