Skip to content

Commit 1704b9e

Browse files
authored
[#177] Spring Security 인증 절차 기능 분리 작업 (#185)
* refactor(Security): 패키지 구조 변경 - jwt 폴더를 token 폴더에 병합 * refactor(Security): User 관련 기능 및 책임 분리 - 기존에 생각해왔던 Security 내에서 User 기능 분리를 위한 작업 - User내에 User를 저장하는 메서드 생성 (인터페이스 등록 X -> 무분별한 사용을 막기 위함 -> public인 이유는 트랜잭션을 위해) - Oauth 디폴트 회원 가입을 위한 메서드 생성 및 인터페이스 등록 - AuthUserInfo에 nickname 추가 -> OAuth2User를 Custom하기 위함 * refactor(Security): OAuth2UserService 상속 후 Custom하기 - 기능 및 책임 분리를 위해 Security에서 사용하는 DefaultOAuth2UserService를 상속 하여 기존 OAuthService 기능을 추가하였음 - User와 관련된 기능은 UserService에서 사용할 수 있도록 하였음 - 기존 SuccessHandler에 포함된 기능 중 일부 이전함 * refactor(Jwt): jwt내에 유동적으로 AccessToken에 Payload를 변경할 수 있는 메서드 추가 * refactor(Token): TokenService - TokenService에 AccessToken 및 RefreshToken 둘의 기능을 제공할 수 있도록 책임 및 기능 변경 - jwtFilter 자체 구현 위임 - getAuthenticationByAccessToken을 통해 TokenService를 통해서 인증 절차를 진행할 수 있도록 함 * refactor(Token): OAuthSuccessHandler 기능 분리 - 유지보수 및 가독성 향상을 위해 책임을 분리 - SuccessHandler 명칭에 맞게 성공 후 토큰을 가지고 전달하는 역할만 담당함 * refactor(Token): RefreshToken 삭제 정책 변경 - 기존에는 삭제 동작(로그아웃)시 해당 토큰이 없으면 예외 발생하였으나 없다고 예외가 나는 것은 부적절하다고 판단하여 토큰이 있는 경우에 만료시키고 없으면 동작하지 않음 * fix(Test): 테스트 코드에서 발생한 에러 해결 - 테스트 전부 통과 확인 - principal을 AuthUserInfo -> JwtAuthentication 재 변경 - chat테스트 독립성 보장 * feat: gpt 임시 적용
1 parent aa37dd9 commit 1704b9e

35 files changed

+293
-171
lines changed

.github/workflows/code-review-by-chat-gpt.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ jobs:
1717
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1818
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
1919
LANGUAGE: Korean
20+

build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ dependencies {
101101
implementation "net.gpedro.integrations.slack:slack-webhook:1.4.0"
102102
//websocket
103103
implementation 'org.springframework.boot:spring-boot-starter-websocket'
104+
//https://velog.io/@saintho/javaxannotationmetawhennotfound
105+
implementation 'com.google.code.findbugs:jsr305:3.0.2'
104106
}
105107

106108

src/main/java/com/prgrms/mukvengers/domain/chat/handler/StompHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import com.prgrms.mukvengers.domain.user.exception.UserNotFoundException;
1616
import com.prgrms.mukvengers.domain.user.model.User;
1717
import com.prgrms.mukvengers.domain.user.repository.UserRepository;
18-
import com.prgrms.mukvengers.global.security.jwt.JwtTokenProvider;
18+
import com.prgrms.mukvengers.global.security.token.service.JwtTokenProvider;
1919
import com.prgrms.mukvengers.global.utils.ExtractUtil;
2020

2121
import io.jsonwebtoken.Claims;

src/main/java/com/prgrms/mukvengers/domain/crew/api/CrewController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import com.prgrms.mukvengers.domain.crew.service.CrewService;
3333
import com.prgrms.mukvengers.global.common.dto.ApiResponse;
3434
import com.prgrms.mukvengers.global.common.dto.IdResponse;
35-
import com.prgrms.mukvengers.global.security.jwt.JwtAuthentication;
35+
import com.prgrms.mukvengers.global.security.token.dto.jwt.JwtAuthentication;
3636

3737
import lombok.RequiredArgsConstructor;
3838

src/main/java/com/prgrms/mukvengers/domain/crewmember/api/CrewMemberController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import com.prgrms.mukvengers.domain.crewmember.dto.request.UpdateCrewMemberRequest;
1212
import com.prgrms.mukvengers.domain.crewmember.service.CrewMemberService;
13-
import com.prgrms.mukvengers.global.security.jwt.JwtAuthentication;
13+
import com.prgrms.mukvengers.global.security.token.dto.jwt.JwtAuthentication;
1414

1515
import lombok.RequiredArgsConstructor;
1616

src/main/java/com/prgrms/mukvengers/domain/proposal/api/ProposalController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import com.prgrms.mukvengers.domain.proposal.service.ProposalService;
2626
import com.prgrms.mukvengers.global.common.dto.ApiResponse;
2727
import com.prgrms.mukvengers.global.common.dto.IdResponse;
28-
import com.prgrms.mukvengers.global.security.jwt.JwtAuthentication;
28+
import com.prgrms.mukvengers.global.security.token.dto.jwt.JwtAuthentication;
2929

3030
import lombok.RequiredArgsConstructor;
3131

src/main/java/com/prgrms/mukvengers/domain/review/api/ReviewController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import com.prgrms.mukvengers.domain.review.service.ReviewService;
2929
import com.prgrms.mukvengers.global.common.dto.ApiResponse;
3030
import com.prgrms.mukvengers.global.common.dto.IdResponse;
31-
import com.prgrms.mukvengers.global.security.jwt.JwtAuthentication;
31+
import com.prgrms.mukvengers.global.security.token.dto.jwt.JwtAuthentication;
3232

3333
import lombok.RequiredArgsConstructor;
3434

src/main/java/com/prgrms/mukvengers/domain/review/mapper/ReviewMapper.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.prgrms.mukvengers.domain.review.mapper;
22

3+
import static org.mapstruct.ReportingPolicy.*;
4+
35
import org.mapstruct.Mapper;
46
import org.mapstruct.Mapping;
57
import org.mapstruct.Named;
@@ -13,7 +15,7 @@
1315
import com.prgrms.mukvengers.domain.review.model.Review;
1416
import com.prgrms.mukvengers.domain.user.model.User;
1517

16-
@Mapper(componentModel = "spring")
18+
@Mapper(componentModel = "spring", unmappedSourcePolicy = IGNORE, unmappedTargetPolicy = IGNORE)
1719
public interface ReviewMapper {
1820

1921
@Mapping(source = "reviewer", target = "reviewer")

src/main/java/com/prgrms/mukvengers/domain/user/api/UserController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import com.prgrms.mukvengers.domain.user.dto.response.UserProfileResponse;
2121
import com.prgrms.mukvengers.domain.user.service.UserService;
2222
import com.prgrms.mukvengers.global.common.dto.ApiResponse;
23-
import com.prgrms.mukvengers.global.security.jwt.JwtAuthentication;
23+
import com.prgrms.mukvengers.global.security.token.dto.jwt.JwtAuthentication;
2424

2525
import lombok.RequiredArgsConstructor;
2626

src/main/java/com/prgrms/mukvengers/domain/user/mapper/UserMapper.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@
66

77
import com.prgrms.mukvengers.domain.user.dto.response.UserProfileResponse;
88
import com.prgrms.mukvengers.domain.user.model.User;
9+
import com.prgrms.mukvengers.global.security.oauth.dto.OAuthUserInfo;
910

1011
@Mapper(componentModel = "spring", unmappedSourcePolicy = IGNORE)
1112
public interface UserMapper {
1213

1314
UserProfileResponse toSingleUserResponse(User user);
1415

16+
User toUser(OAuthUserInfo oauthUserInfo);
17+
1518
}

0 commit comments

Comments
 (0)