From 8cfc50374e278d0e4223276aca2bd447027efd16 Mon Sep 17 00:00:00 2001 From: youth Date: Wed, 14 Aug 2024 09:34:17 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EC=86=8C=EC=BC=93=20=ED=86=A0?= =?UTF-8?q?=ED=81=B0=20=EB=B0=9C=EA=B8=89=20=EC=8B=9C=20AuthenticationPrin?= =?UTF-8?q?cipal=20=ED=99=9C=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/socket/controller/SocketController.java | 11 +++++++---- .../domain/education/service/SocketService.java | 13 +++++++------ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/cotato/csquiz/api/socket/controller/SocketController.java b/src/main/java/org/cotato/csquiz/api/socket/controller/SocketController.java index ece29e4e..6d2a49d6 100644 --- a/src/main/java/org/cotato/csquiz/api/socket/controller/SocketController.java +++ b/src/main/java/org/cotato/csquiz/api/socket/controller/SocketController.java @@ -7,12 +7,15 @@ import org.cotato.csquiz.api.socket.dto.QuizOpenRequest; import org.cotato.csquiz.api.socket.dto.QuizSocketRequest; import org.cotato.csquiz.api.socket.dto.SocketTokenDto; -import org.cotato.csquiz.domain.education.service.*; +import org.cotato.csquiz.domain.education.service.EducationService; +import org.cotato.csquiz.domain.education.service.QuizSolveService; +import org.cotato.csquiz.domain.education.service.RecordService; +import org.cotato.csquiz.domain.education.service.SocketService; import org.springframework.http.ResponseEntity; +import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -67,8 +70,8 @@ public ResponseEntity closeEducation(@RequestBody @Valid EducationCloseReq } @PostMapping("/token") - public ResponseEntity makeSocketToken(@RequestHeader("Authorization") String authorizationHeader) { - return ResponseEntity.ok(socketService.createSocketToken(authorizationHeader)); + public ResponseEntity makeSocketToken(@AuthenticationPrincipal Long memberId) { + return ResponseEntity.ok(socketService.createSocketToken(memberId)); } diff --git a/src/main/java/org/cotato/csquiz/domain/education/service/SocketService.java b/src/main/java/org/cotato/csquiz/domain/education/service/SocketService.java index 1addf938..cbf8e694 100644 --- a/src/main/java/org/cotato/csquiz/domain/education/service/SocketService.java +++ b/src/main/java/org/cotato/csquiz/domain/education/service/SocketService.java @@ -4,6 +4,8 @@ import lombok.extern.slf4j.Slf4j; import org.cotato.csquiz.api.socket.dto.SocketTokenDto; import org.cotato.csquiz.common.config.jwt.JwtTokenProvider; +import org.cotato.csquiz.domain.auth.entity.Member; +import org.cotato.csquiz.domain.auth.service.MemberService; import org.cotato.csquiz.common.websocket.WebSocketHandler; import org.springframework.stereotype.Service; @@ -12,6 +14,7 @@ @Slf4j public class SocketService { + private final MemberService memberService; private final WebSocketHandler webSocketHandler; private final JwtTokenProvider jwtTokenProvider; @@ -31,13 +34,11 @@ public void stopEducation(Long educationId) { webSocketHandler.stopEducation(educationId); } - public SocketTokenDto createSocketToken(String authorizationHeader) { - String token = jwtTokenProvider.resolveAccessToken(authorizationHeader); - String role = jwtTokenProvider.getRole(token); - Long memberId = jwtTokenProvider.getMemberId(token); - jwtTokenProvider.checkMemberExist(memberId); - String socketToken = jwtTokenProvider.createSocketToken(memberId, role); + public SocketTokenDto createSocketToken(final Long memberId) { + Member member = memberService.findById(memberId); + + String socketToken = jwtTokenProvider.createSocketToken(member.getId(), member.getRole().getKey()); log.info("[ 소켓 전용 토큰 발급 완료 ]"); return SocketTokenDto.from(socketToken); }