Closed halucinor closed 1 year ago
In GitLab by @haaeee on Feb 6, 2023, 13:30
requested review from @AnTaeWook
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/mapper/HiworksProfileMapper.java line 25
이 메서드는 MapStruct
기본 기능으로 해결해 볼 수 있어 보입니다!!
제가 매퍼에 대해 잘 모르지만 복잡한 로직이 없은이 디폴트 값에 주의하며 작업하면 될 것 같습니다
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/mapper/LoginResponseMapper.java line 23
member.getPhoneNumber()
의 결과가 null
여부에 따라 분기를 수행하게 되는 것 같습니다.
매퍼에 비즈니스 로직 성격이 강한 코드가 들어가는 것이 적절할까에 대한 고민이 생기네요.
가입했느냐 안했느냐 여부는 서비스레이어에서 판단하는 건 어떨까요?
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/security/client/LocalHiworksOauthClient.java line 28
Local 개발용 코드긴 하지만, (6, 8), (5,7)의 의미를 코드를 읽는 입장에서 파악하기 힘듭니다.
의미를 갖는 네이밍된 변수로 변경하는 것은 어떤가요?
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/security/client/LocalHiworksOauthClient.java line 37
마찬가지로, "@gabia.com" 이라는 스트링이 반복되괴 있는데, 유지보수성와 변경성을 위해 변수로 빼는 것이 어떨까요?
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/security/client/ProdHiworksOauthClient.java line 41
ObjectMapper
의 생성비용은 매우 큽니다.
스프링 팩토리에서 기본적으로 생성해 주는 객체인데, 주입받는 다른 방법을 고민해보시는 건 어떨까요
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/security/client/ProdHiworksOauthClient.java line 45
타임아웃을 10초로 설정하신 이유가 있을까요? 매직넘버는 빼주시면 좋을 것 같습니다.
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/security/support/AuthArgumentResolver.java line 28
확실하지 않게 드리는 질문인데요,
CurrentMember
라는 어노테이션이 Integer
클래스로 선언되면 어떻게 되나요?
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/security/support/AuthArgumentResolver.java line 37
요구사항에서, 사내 서비스인 만큼 외부 인원은 접근할 수 없어야 하는 것으로 이해했습니다.
auth가 null이라면, 더 이상 흐름을 진행하지 않고 오류를 뱉는 것은 어떨까요?
인증/인가에 대해 잘 몰라서 궁예식 코드리뷰 드리는점 양해 부탁드립니다..
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/service/AuthService.java line 46
개인적인 취향인데요, member.getRole()
은 따로 변수로 빼지 않고 member.getId()
만 변수로 빼서 사용하신 이유가 있을까요?
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/service/AuthService.java line 52
관리자로 등록되지 않으셨습니다. -> 회원으로 등록되지 않으셨습니다 로 바뀌면 좋을 것 같습니다
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/service/MemberService.java line 28
final 키워드 빠졌어요 제이미!
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/main/java/com/gabia/bshop/util/AuthTokenExtractor.java line 24
매직넘버의 의미를 확실히 네이밍해주면 좋을 것 같습니다!
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/test/java/com/gabia/bshop/security/client/LocalHiworksOauthClientTest.java line 41
when
스코프는 로직 하나만 작성해서 하나에 대한 검증만 실시하는 것이 좋습니다.
그게 불가능하다면 잘못 짜여진 코드라고 어디서 들은 것 같습니다.
테스트 코드를 분리하거나, 코드에 대한 고민을 해야할 것 같습니다.!
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/test/java/com/gabia/bshop/security/redis/RefreshTokenServiceImplTest.java line 55
given(refreshTokenRepository.findById(refreshToken.refreshToken())).willReturn( Optional.empty());
절이,
//when
의 행위를 검증하는 스코프에 있는 것이 맞을까요?
이 테스트에서 검증해야 하는 행동은 결국 refreshTokenRedisService.findToken(refreshToken.refreshToken())
일 것 같습니다.
In GitLab by @AnTaeWook on Feb 7, 2023, 09:42
Commented on src/test/java/com/gabia/bshop/security/redis/RefreshTokenServiceImplTest.java line 70
void 저장된_리프레시_토큰이_없을_때_예외를_던진다()
와 동일한 리뷰입니다.
In GitLab by @haaeee on Feb 7, 2023, 10:02
Commented on src/main/java/com/gabia/bshop/security/client/LocalHiworksOauthClient.java line 28
이 부분은 Magic Number의 의미를 좀 더 구체화하겠습니다.
In GitLab by @haaeee on Feb 7, 2023, 10:02
Commented on src/main/java/com/gabia/bshop/security/client/LocalHiworksOauthClient.java line 37
변수로 슬쩍위로 빼겠습니다!
In GitLab by @haaeee on Feb 7, 2023, 10:02
Commented on src/main/java/com/gabia/bshop/mapper/HiworksProfileMapper.java line 25
Reference: https://mapstruct.org/documentation/stable/reference/html/#default-values-and-constants
이걸로 변경해보겠습니다.
In GitLab by @haaeee on Feb 7, 2023, 10:02
Commented on src/main/java/com/gabia/bshop/mapper/LoginResponseMapper.java line 23
저도 이 부분에 대해서 고민을 좀 더 해보고 추후 리팩토링하고 다시 커밋 올리겠습니다!
In GitLab by @haaeee on Feb 7, 2023, 10:03
Commented on src/main/java/com/gabia/bshop/security/client/ProdHiworksOauthClient.java line 41
Client가 한번 생성되도록 Config에서 Bean 으로 등록되어 mapper가 한번 생성된다고 생각하였습니다. 주입 받는 방식으로 코드를 다시 구성해보겠습니다.
In GitLab by @haaeee on Feb 7, 2023, 10:06
Commented on src/main/java/com/gabia/bshop/security/client/ProdHiworksOauthClient.java line 41
Config에서 Bean으로 Client를 등록하여 한번 생성되고 재사용한다 생각헀는데, 스프링에서 빈으로 mapper를 등록해주기에 이를 주입 받는 방식으로 변경하겠습니다.
In GitLab by @haaeee on Feb 7, 2023, 10:18
Commented on src/main/java/com/gabia/bshop/security/client/ProdHiworksOauthClient.java line 45
:)
In GitLab by @haaeee on Feb 7, 2023, 10:19
Commented on src/main/java/com/gabia/bshop/security/support/AuthArgumentResolver.java line 28
네 바로 수정 들어가겠습니다!
변경점은 추후 커멘트로 남기겠습니다.
In GitLab by @haaeee on Feb 7, 2023, 10:23
Commented on src/main/java/com/gabia/bshop/security/support/AuthArgumentResolver.java line 37
-> authorization Header에 담기는 것은 accessToken(저희 백엔드 서버에서 만든 Jwt Token)으로 사용자의 정보를 담고 있습니다. 즉, 사용자를 판별하는 용도로 사용되고 있습니다.
이에 따라 authorization Header가 없는 경우는 로그인 하기 전
입니다.
AuthArgumentResolver는 MemberPayload를 controller에서 request가 들어올 떄 사용되는 데 이 떄 위에 언급하신 auth가 null이라면, 더 이상 흐름을 진행하지 않고 오류를 뱉는 것
은 AuthInterceptor
단에서 처리하였습니다.
In GitLab by @haaeee on Feb 7, 2023, 10:24
Commented on src/main/java/com/gabia/bshop/service/AuthService.java line 46
이 부분은 코드를 한번 더 읽어보고 커멘트 남기겠습니다!
In GitLab by @haaeee on Feb 7, 2023, 10:24
Commented on src/main/java/com/gabia/bshop/service/AuthService.java line 52
수정하도록 하겠습니다!
In GitLab by @haaeee on Feb 7, 2023, 10:26
Commented on src/main/java/com/gabia/bshop/service/MemberService.java line 28
final 키위드 붙이겠습니다!
In GitLab by @haaeee on Feb 7, 2023, 10:26
Commented on src/main/java/com/gabia/bshop/util/AuthTokenExtractor.java line 24
수정하도록하겠습니다!
In GitLab by @haaeee on Feb 7, 2023, 10:26
Commented on src/test/java/com/gabia/bshop/security/client/LocalHiworksOauthClientTest.java line 41
-> 제가 테스트 코드의 normal, Admin 을 두 가지를 동시에 테스트를 작성하는데 이는 분리를 잘 못한 것 같습니다. 분리한 후 추후 커밋 올리겠습니다.
In GitLab by @haaeee on Feb 7, 2023, 10:26
Commented on src/test/java/com/gabia/bshop/security/redis/RefreshTokenServiceImplTest.java line 55
수정하도록하겠습니다!
In GitLab by @haaeee on Feb 7, 2023, 10:26
Commented on src/test/java/com/gabia/bshop/security/redis/RefreshTokenServiceImplTest.java line 70
넵!
In GitLab by @halucinor on Feb 8, 2023, 10:24
Commented on src/main/java/com/gabia/bshop/controller/AuthController.java line 51
logout 시 main 페이지로 redirect
하는건 어떨까요?
In GitLab by @halucinor on Feb 8, 2023, 10:28
Commented on src/main/java/com/gabia/bshop/dto/request/HiworksTokenRequest.java line 9
@JsonProperty
를 설정해주게되면 clientId가 client_id로 변경되어 response body에 담기나요?
In GitLab by @halucinor on Feb 8, 2023, 10:29
Commented on src/main/java/com/gabia/bshop/dto/response/AccessTokenResponse.java line 3
개행이 되어있지 않은거 같습니다
In GitLab by @halucinor on Feb 8, 2023, 10:31
Commented on src/main/java/com/gabia/bshop/dto/response/HiworksTokenResponse.java line 7
HiworksProfileResponse
에서는
@JsonIgnoreProperties(ignoreUnknown = true)
가 있는데 TokenResponse
에는 없어도 되는건가요?
In GitLab by @halucinor on Feb 8, 2023, 10:32
Commented on src/main/java/com/gabia/bshop/dto/response/IssuedTokensResponse.java line 6
다른 record와 동일하게 개행이 있으면 좋을거 같습니다~
In GitLab by @halucinor on Feb 8, 2023, 10:34
Commented on src/main/java/com/gabia/bshop/dto/response/HiworksTokenResponse.java line 19
user_no
-> userNo
In GitLab by @halucinor on Feb 8, 2023, 10:40
Commented on src/main/java/com/gabia/bshop/exception/CustomException.java line 8
CustomException
을 만들 때 그냥 Exception
이 아닌 RuntimeException
을 상속받은 이유가 있을까요?
In GitLab by @halucinor on Feb 8, 2023, 10:54
Commented on src/main/java/com/gabia/bshop/security/client/ProdHiworksOauthClient.java line 52
나중에 공통적으로 예외처리를 수행하는 ExceptionHandler
를 만들어 중복되는 코드를 줄일 수 있을 거같아요. 어떻게 만들지 같이 고민해보면 좋을거 같습니다.
In GitLab by @halucinor on Feb 8, 2023, 10:56
Commented on src/main/java/com/gabia/bshop/security/provider/JwtProvider.java line 90
body
와 id
에도 final
키워드를 붙하는게 맞을까요?
In GitLab by @haaeee on Feb 8, 2023, 11:06
Commented on src/main/java/com/gabia/bshop/security/client/ProdHiworksOauthClient.java line 41
changed this line in version 2 of the diff
In GitLab by @haaeee on Feb 8, 2023, 11:06
Commented on src/main/java/com/gabia/bshop/security/client/ProdHiworksOauthClient.java line 45
changed this line in version 2 of the diff
In GitLab by @haaeee on Feb 8, 2023, 11:06
Commented on src/main/java/com/gabia/bshop/dto/response/AccessTokenResponse.java line 3
changed this line in version 2 of the diff
In GitLab by @haaeee on Feb 8, 2023, 11:06
Commented on src/main/java/com/gabia/bshop/dto/response/IssuedTokensResponse.java line 6
changed this line in version 2 of the diff
In GitLab by @haaeee on Feb 8, 2023, 11:06
Commented on src/main/java/com/gabia/bshop/dto/response/HiworksTokenResponse.java line 19
changed this line in version 2 of the diff
In GitLab by @haaeee on Feb 8, 2023, 11:06
added 71 commits
develop
In GitLab by @halucinor on Feb 8, 2023, 11:10
Commented on src/main/java/com/gabia/bshop/security/provider/JwtProvider.java line 97
Exception
별로 정확하게 메시지를 나누는게 좋을거 같다고 생각합니다.
In GitLab by @halucinor on Feb 8, 2023, 11:11
Commented on src/main/java/com/gabia/bshop/security/redis/RefreshToken.java line 12
fianl 키워드가 빠진거 같아요
In GitLab by @haaeee on Feb 8, 2023, 11:11
added 1 commit
In GitLab by @haaeee on Feb 6, 2023, 13:30
Merges feature/hiworks-mock -> develop
작업 내용
Oauth Mocking 및 인증 인가 비즈니스 로직 추가
스크린샷
주의사항
Closes #19