From fb4ad6633de5de99f4942220ba7c48fae7063e84 Mon Sep 17 00:00:00 2001 From: kon28289 Date: Tue, 29 Jul 2025 21:13:08 +0900 Subject: [PATCH 1/3] =?UTF-8?q?chore:=20=EB=A6=AC=ED=94=84=EB=A0=88?= =?UTF-8?q?=EC=8B=9C=20=ED=86=A0=ED=81=B0=20API=20=EC=A0=91=EA=B7=BC=20?= =?UTF-8?q?=EC=8B=9C=20JWT=20=EA=B2=80=EC=A6=9D=EC=9D=84=20=EC=83=9D?= =?UTF-8?q?=EB=9E=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JobForeigner/global/config/security/SecurityConfig.java | 4 ++++ .../d138/JobForeigner/resume/service/ResumeService.java | 5 ++--- src/main/resources/properties | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/config/security/SecurityConfig.java b/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/config/security/SecurityConfig.java index 7ab3217e..aace6d15 100644 --- a/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/config/security/SecurityConfig.java +++ b/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/config/security/SecurityConfig.java @@ -51,6 +51,10 @@ public SecurityFilterChain defaultSecurity(HttpSecurity http) throws Exception { // @PreAuthorized, @PostAuthorized의 경우 메서드 호출 직전에 차단되어 GlobalExceptionHandler에 의해 예외가 처리됩니다. .authorizeHttpRequests(req -> req .requestMatchers("/api/v1/admin/**").hasAnyRole(MemberType.ADMIN.name()) + .requestMatchers("/api/v1/members/sign-in").permitAll() + .requestMatchers("/api/v1/members/sign-up/**").permitAll() + .requestMatchers("/api/v1/members/refresh").permitAll() + .requestMatchers("/api/v1/email/**").permitAll() .anyRequest().permitAll()) .exceptionHandling(ex -> ex diff --git a/src/main/java/kr/ac/kumoh/d138/JobForeigner/resume/service/ResumeService.java b/src/main/java/kr/ac/kumoh/d138/JobForeigner/resume/service/ResumeService.java index 7ad396f0..84ce31ee 100644 --- a/src/main/java/kr/ac/kumoh/d138/JobForeigner/resume/service/ResumeService.java +++ b/src/main/java/kr/ac/kumoh/d138/JobForeigner/resume/service/ResumeService.java @@ -109,13 +109,14 @@ public ResumeResponse updateResume(ResumeRequest request, Long memberId, Long re Resume resume = resumeRepository.findById(resumeId) .orElseThrow(()-> new BusinessException(ExceptionType.RESUME_NOT_FOUND)); + String imageUrl = resumeImageService.getResumeImagePresignedUrl(memberId); if(!resume.getMember().getId().equals(memberId)) { throw new BusinessException(ExceptionType.RESUME_FORBIDDEN); } resume.updateResume( request.resumeTitle(), - request.resumeImageUrl() != null ? request.resumeImageUrl() : resume.getResumeImageUrl(), + imageUrl, request.desiredJobs() != null ? request.desiredJobs().stream().map(DesiredJobRequest::toDesiredJob).collect(Collectors.toList()) : null, @@ -148,8 +149,6 @@ public ResumeResponse updateResume(ResumeRequest request, Long memberId, Long re : null ); - String imageUrl = resumeImageService.getResumeImagePresignedUrl(memberId); - return ResumeResponse.toResumeResponse(resume, imageUrl, MemberProfileResponse.toMemberProfileResponse(resume.getMember(), null)); } diff --git a/src/main/resources/properties b/src/main/resources/properties index 38ec4970..11b82a2a 160000 --- a/src/main/resources/properties +++ b/src/main/resources/properties @@ -1 +1 @@ -Subproject commit 38ec49702a8ccad0c17c10ef20f6e2143c7e3ff5 +Subproject commit 11b82a2a0896e10014297d2e7b1dad832d2973f1 From 9f795cfb3cc5cc34ebb496587091055ae581a65a Mon Sep 17 00:00:00 2001 From: kon28289 Date: Tue, 29 Jul 2025 21:27:08 +0900 Subject: [PATCH 2/3] =?UTF-8?q?chore:=20=EB=A6=AC=ED=94=84=EB=A0=88?= =?UTF-8?q?=EC=8B=9C=20=ED=86=A0=ED=81=B0=20API=20=EC=A0=91=EA=B7=BC=20?= =?UTF-8?q?=EC=8B=9C=20JWT=20=EA=B2=80=EC=A6=9D=EC=9D=84=20=EC=83=9D?= =?UTF-8?q?=EB=9E=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/jwt/filter/JwtAuthenticationFilter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/jwt/filter/JwtAuthenticationFilter.java b/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/jwt/filter/JwtAuthenticationFilter.java index 817b08f5..d19ca084 100644 --- a/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/jwt/filter/JwtAuthenticationFilter.java +++ b/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/jwt/filter/JwtAuthenticationFilter.java @@ -19,6 +19,7 @@ import org.springframework.web.filter.OncePerRequestFilter; import java.io.IOException; +import java.util.Arrays; import java.util.Optional; @Slf4j @@ -29,8 +30,11 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter { @Override protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException { + String[] excludePath = {"api/v1/members/sign-in", "api/v1/members/sign-up/**", "/api/v1/members/refresh", "/api/v1/email/**"}; + String authorizationHeader = request.getHeader(HttpHeaders.AUTHORIZATION); - return authorizationHeader == null; + return authorizationHeader == null + || Arrays.stream(excludePath).anyMatch(request.getRequestURI()::startsWith); } @Override From 1a978c9332057d610a7586d33fcf4efea1c124f1 Mon Sep 17 00:00:00 2001 From: kon28289 Date: Tue, 29 Jul 2025 21:33:20 +0900 Subject: [PATCH 3/3] =?UTF-8?q?chore:=20=EB=A6=AC=ED=94=84=EB=A0=88?= =?UTF-8?q?=EC=8B=9C=20=ED=86=A0=ED=81=B0=20API=20=EC=A0=91=EA=B7=BC=20?= =?UTF-8?q?=EC=8B=9C=20JWT=20=EA=B2=80=EC=A6=9D=EC=9D=84=20=EC=83=9D?= =?UTF-8?q?=EB=9E=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JobForeigner/global/jwt/filter/JwtAuthenticationFilter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/jwt/filter/JwtAuthenticationFilter.java b/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/jwt/filter/JwtAuthenticationFilter.java index d19ca084..c92044c0 100644 --- a/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/jwt/filter/JwtAuthenticationFilter.java +++ b/src/main/java/kr/ac/kumoh/d138/JobForeigner/global/jwt/filter/JwtAuthenticationFilter.java @@ -30,7 +30,7 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter { @Override protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException { - String[] excludePath = {"api/v1/members/sign-in", "api/v1/members/sign-up/**", "/api/v1/members/refresh", "/api/v1/email/**"}; + String[] excludePath = {"api/v1/members/sign-in", "api/v1/members/sign-up/**", "api/v1/members/refresh", "api/v1/email/**"}; String authorizationHeader = request.getHeader(HttpHeaders.AUTHORIZATION); return authorizationHeader == null