Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feat] #202 - allowedMethods에 PATCH 메서드 추가 및 allowedOriginPatterns에 도메인 명시 #203

Merged
merged 3 commits into from
Aug 31, 2024

Conversation

hoonyworld
Copy link
Member

@hoonyworld hoonyworld commented Aug 31, 2024

Related issue 🛠

Work Description ✏️

  • allowedMethods에 PATCH 메서드를 추가하고, allowedOriginPatterns에 직접적인 도메인을 명시하였습니다.
  • 기존에는 모든 도메인에서 요청을 허용했으나, 보안성을 높이기 위해 localhost, dev 도메인, prod 도메인만 허용하도록 변경했습니다.

Trouble Shooting ⚽️

Related ScreenShot 📷

Uncompleted Tasks 😅

To Reviewers 📢

@hoonyworld hoonyworld merged commit e3a1283 into develop Aug 31, 2024
1 check passed
@hoonyworld hoonyworld deleted the feat/#202 branch August 31, 2024 16:48
hoonyworld added a commit that referenced this pull request Sep 5, 2024
… 명시 (#203)

* [#202] feat(WebConfig): PATCH 메서드 추가 및 allowedOriginPatterns에 도메인 명시

* [#202] feat(WebConfig): 클라이언트 localhost 주소 추가

* [#202] fix(WebConfig): 문자열 오타 수정
@hoonyworld hoonyworld changed the title feat #202 - allowedMethods에 PATCH 메서드 추가 및 allowedOriginPatterns에 도메인 명시 [feat] #202 - allowedMethods에 PATCH 메서드 추가 및 allowedOriginPatterns에 도메인 명시 Sep 5, 2024
hoonyworld added a commit that referenced this pull request Sep 10, 2024
* [#190] chore(Booking): 공백 제거

* [#190] feat(FileSuccessCode): S3 관련 성공 메시지를 관리하는 열거형 생성

* [#190] feat(PresignedUrlFindAllResponse): 공연 생성 관련 presignedUrl 응답 DTO 구현

* [#190] refactor(FileService): 메서드 명 변경 및 정적 팩토리 메서드로 반환하도록 변경

* [#190] feat(FileApi): Performance PreSigned Url 스웨거 명세서 작성

* [#190] feat(FileController): FileApi 인터페이스를 구현하도록 리팩토링 및 SuccessResponse로 반환하도록 변경

* [#190] refactor(SecurityConfig): AUTH_WHITELIST에 /error url 추가

* [#190] refactor(SwaggerConfig): 릴리즈 버전 수정

* [#190] refactor: 폴더 변경 및 이동

* [feat] #200 - 공연회차 등록 10회까지 가능하도록 수정 (#201)

* [#200] fix(ScheduleNumber): 10회차까지 추가

* [#200] fix(PerformanceModifyService): 공연 회차 수정 중 회차 추가 시 검증 로직 10회차까지 허용 가능하도록 변경

* [#200] feat(PerformanceErrorCode): MAX_SCHEDULE_LIMIT_EXCEEDED message 수정

* feat #202 - allowedMethods에 PATCH 메서드 추가 및 allowedOriginPatterns에 도메인 명시 (#203)

* [#202] feat(WebConfig): PATCH 메서드 추가 및 allowedOriginPatterns에 도메인 명시

* [#202] feat(WebConfig): 클라이언트 localhost 주소 추가

* [#202] fix(WebConfig): 문자열 오타 수정

* [fix] #204 - SuccessReponse 메서드 타입 수정 및 회원 예매 조회 타입 일치 완료 (#205)

* [#204] fix(SuccessResponse): 메서드에 제네릭 타입 명시

* [#204] fix(BookingController): 회원 예매 조회 response 타입 일치하도록 수정

* [#206] fix(TokenErrorCode): 토큰 만료 메시지 status 401로 변경 (#207)

* [#190] refactor: 패키지명 변경

- service에서 application으

* [#190] refactor(KakaoSocialService): 변수명 camelCase로 변경

* [#190] refactor(MemberService): 가독성을 위한 소셜로그인 서비스 로직 리팩토링

* [#190] refactor(MemberService): 메서드명을 역할에 부합하도록 수정

* [#190] refactor(MemberController): 변경된 메서드명으로 리팩토링

* [#190] feat(MemberRegistrationService): 서비스 분리 및 회원 등록 서비스 생성

* [#190] feat(AuthenticationService): 서비스 분리 및 인증 서비스 생성

* [#190] feat(SocialLoginService): 서비스 분리 및 소셜로그인 관리 서비스 생성

* [#190] refactor(MemberService): 회원 서비스 분리를 위한 리팩토링

* [#190] refactor(MemberController): 서비스 객체 변경

* [#190] feat(Role): 사용자의 역할을 관리하는 열거형 생성

* [#190] refactor(Users): 열거형 필드 추가 및 protected 기본생성자 추가

* [#190] refactor(LoginSuccessResponse): 로그인 성공 응답 DTO에 역할 필드 추가

* [#190] refactor(Member): 기본생성자의 접근제어자 protected로 수정 및 user 필드 지연 로딩으로 변경

* [#190] feat(AuthenticationService): 역할에 따른 토큰 발급 및 유효성 검사 추가

- 리프레시 토큰이 만료된 경우, generateAccessTokenFromRefreshToken 메서드에서 만료 에러 반환을 추가.
- 사용자의 Role (Admin 또는 Member)에 따라 각각의 권한으로 새로운 Access Token을 발급하도록 수정.
- generateLoginSuccessResponse 메서드에서 로그인 성공 시 사용자 역할에 따라 인증 객체를 생성하고, Access 및 Refresh 토큰을 발급.

* [#190] feat(AdminAuthentication): Admin 사용자 인증 객체 추가

- Spring Security의 UsernamePasswordAuthenticationToken을 상속하여, 관리자 권한을 포함한 인증 객체 생성 가능.

* [#190] refactor(JwtTokenProvider): JWT 토큰 발급시 역할 부여 및 검증 로직 개선

- JWT 토큰 발급 시 사용자 정보(memberId)와 역할(role)을 포함한 클레임 생성.
- getMemberIdFromJwt 및 getRoleFromJwt 메서드를 통해 토큰에서 사용자 정보와 역할을 추출하는 기능 구현.
- "ROLE_" 접두사를 제거한 후, 역할을 추출하여 Role Enum에 맞게 변환하는 로직 추가.

* [#190] refactor(SocialLoginService): 사용자 정보 조회 로직 수정

- `generateLoginResponseFromMemberInfo` 메서드에서 회원 정보를 조회할 때 `memberService.findUserByMemberId(memberId)`를 통해 Users 객체를 조회하도록 수정.

* [#190] refactor(MemberRegistrationService): 유저 정보로 회원등록시 역할을 MEMBER로 설정하도록 변경

* [#190] feat(MemberService): 회원 ID로 Users 정보 조회 메서드 추가

* [#190] feat(TokenErrorCode): 리프레시 토큰 만료 에러 코드 추가

* [#190] refactor(MemberController): 로그인/회원가입 API에서 역할도 반환하도록 수정

* [#190] refactor(JwtAuthenticationFilter): JWT 토큰 검증 및 인증 설정 로직 개선

- JWT 토큰이 만료되었거나 유효하지 않은 경우 적절한 HTTP 상태 코드(401, 400)를 반환하도록 처리 추가.
- `setAuthentication` 메서드를 통해 토큰에서 추출한 memberId와 role로 권한 설정.
- `handleInvalidToken` 메서드를 분리하여 토큰 상태에 따른 응답 처리 설정.
- `createAuthentication` 메서드에서 role에 따라 Admin 또는 Member 인증 객체 생성.

* [#190] chore(.gitignore): application-local.yml을 .gitignore에 추가

* [#190] chore(JwtAuthenticationFilter): 불필요한 import문 삭제

* [#190] chore(TokenService): 코드 가독성을 위한 리팩토링

* [#190] refactor(JwtTokenProvider): SignatureException 에러처리 추가 및 로그 추가

* [#190] refactor(AuthenticationService): 리프레시 토큰을 이용해 새로운 액세스 토큰 발급 시 토큰 검증 구체화 및 로그 추가

* [#190] refactor(TokenErrorCode): 리프레쉬 토큰 관련 에러코드 추가

* [#190] refactor(AuthenticationService): 에러코드 변경

* [#190] feat(SecurityConfig): ADMIN 권한 설정 추가

* [#190] feat(UserFindAllResponse): 유저 테이블의 정보를 반환하는 응답 DTO 생성

* [#190] delete(UserResponse): UserResponse 삭제

* [#190] feat(AdminSuccessCode): 관리자 성공 코드 및 모든 유저 조회 성공메시지 생성

* [#190] feat(AdminService): 관리자가 모든 유저를 불러올 수 있는 서비스 로직 생성

* [#190] feat(AdminController): 관리자가 모든 유저를 불러오는 GET API 생성

* [#190] refactor(AdminController): 토큰을 줘서 역할 검증을 하도록 변경

* [#190] feat(UserResponse): 유저 정보를 객체로 반환하는 응답 DTO 생성

* [#190] refactor: CurrentMemberArgumentResolver로 클래스 이름 수정

* [#190] fix(UserFindAllResponse): Users 객체가 Hibernate 프록시 객체로 반환되어 직렬화되지 못했던 부분 수정

* [#190] chore(GlobalExceptionHandler): ExceptionHandler 분리 및 로그 명시

* [#190] chore(CustomAccessDeniedHandler): 권한 부족 로그 명시

* [#190] chore(CustomJwtAuthenticationEntryPoint): 인증되지 않은 요청 로그 명시

* [#190] refactor(CustomJwtAuthenticationEntryPoint): 토큰에서 추출한 memberId가 DB에 존재하는지 확인하는 로직 추가

* [#190] chore(FileApi): 스웨거 문서 수정

* [#190] chore(AdminApi): 관리자 API 스웨거 문서 작성

* [#190] chore(AdminController): 스웨거 인터페이스 implements 및 메서드 오버라이딩

* [#190] rename(PerformanceMakerPresignedUrlFindAllResponse): 공연 메이커를 위한 presignedUrl을 발급하는 응답 DTO 역할에 맞게 레코드 rename

* [#190] rename(UserFindResponse): 기존 UserResponse를 역할에 부합하는 이름으로 rename

* [#190] refactor(UserFindAllResponse): rename된 이름으로 변경

* [#190] chore(FileSuccessCode): 성공메시지 구체화

* [#190] refactor(AdminSuccessCode): 캐러셀, 배너 presignedUrl 발급 성공메시지 추가

* [#190] refactor(AdminUserManagementService): AdminUserManagementService로 rename 및 ifPresentOrElse로 가독성 개선

* [#190] refactor(BannerPresignedUrlFindResponse): 배너 presignedUrl 응답 DTO 생성

* [#190] refactor(CarouselPresignedUrlFindAllResponse): 캐러셀 presignedUrl 응답 DTO 생성

* [#190] refactor(FileController): 공연 메이커를 위한 presignedUrl 응답 DTO의 이름 변경으로 인한 반환 레코드명 수정

* [#190] refactor(FileService): 캐러셀/배너 presignedUrl 서비스 로직 구현 및 컨벤션에 맞게 메서드명 수정

* [#190] feat(AdminController): 캐러셀/배너 presignedUrl GET API 구현

* [#190] feat(AdminApi): 캐러셀/배너 presignedUrl GET API 스웨거 명세 작성

* [#190] refactor(FileApi): DTO 이름 변경으로 인한 명세서 수정

---------

Co-authored-by: hyerinhwang-sailin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feat] WebConfig에 PATCH 메서드 추가
2 participants