diff --git a/src/main/java/com/example/waggle/global/config/SwaggerConfig.java b/src/main/java/com/example/waggle/global/config/SwaggerConfig.java index 99e38a54..5c6768dd 100644 --- a/src/main/java/com/example/waggle/global/config/SwaggerConfig.java +++ b/src/main/java/com/example/waggle/global/config/SwaggerConfig.java @@ -29,17 +29,17 @@ public OpenAPI api() { .description("API Description"); // SecuritySecheme명 - String jwtSchemeName = "access_token"; + String jwtSchemeName = "JwtAuth"; // API 요청헤더에 인증정보 포함 SecurityRequirement securityRequirement = new SecurityRequirement().addList(jwtSchemeName); // SecuritySchemes 등록 Components components = new Components() .addSecuritySchemes(jwtSchemeName, new SecurityScheme() .name(jwtSchemeName) - .type(SecurityScheme.Type.APIKEY) // HTTP 방식 -// .scheme("bearer") - .in(SecurityScheme.In.COOKIE) - .bearerFormat("JWT")); // 토큰 형식을 지정하는 임의의 문자(Optional) + .type(SecurityScheme.Type.HTTP) // HTTP 방식 + .scheme("bearer") + .in(SecurityScheme.In.HEADER) + .bearerFormat("Authorization")); // 토큰 형식을 지정하는 임의의 문자(Optional) return new OpenAPI() diff --git a/src/main/java/com/example/waggle/global/security/JwtAuthenticationFilter.java b/src/main/java/com/example/waggle/global/security/JwtAuthenticationFilter.java index f9d2e752..298df70a 100644 --- a/src/main/java/com/example/waggle/global/security/JwtAuthenticationFilter.java +++ b/src/main/java/com/example/waggle/global/security/JwtAuthenticationFilter.java @@ -30,13 +30,14 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse String requestURI = httpServletRequest.getRequestURI(); String token = null; - if (httpServletRequest.getCookies() != null) { - token = Arrays.stream(httpServletRequest.getCookies()) - .filter(cookie -> cookie.getName().equals("access_token")) - .findFirst().map(Cookie::getValue) - .orElse(null); - } - log.info("token = {}", token); +// if (httpServletRequest.getCookies() != null) { +// token = Arrays.stream(httpServletRequest.getCookies()) +// .filter(cookie -> cookie.getName().equals("access_token")) +// .findFirst().map(Cookie::getValue) +// .orElse(null); +// } +// log.info("token = {}", token); + token = resolveToken(request); // 2. validateToken으로 토큰 유효성 검사 if (token != null && tokenService.validateToken(token)) { diff --git a/src/main/java/com/example/waggle/web/controller/QuestionApiController.java b/src/main/java/com/example/waggle/web/controller/QuestionApiController.java index feb8d369..59afebd1 100644 --- a/src/main/java/com/example/waggle/web/controller/QuestionApiController.java +++ b/src/main/java/com/example/waggle/web/controller/QuestionApiController.java @@ -18,6 +18,7 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -39,7 +40,7 @@ public class QuestionApiController { @Operation(summary = "질문 작성", description = "사용자가 질문을 작성합니다. 작성한 질문의 정보를 저장하고 질문의 고유 ID를 반환합니다.") @ApiResponse(responseCode = "200", description = "질문 작성 성공. 작성한 질문의 고유 ID를 반환합니다.") @ApiResponse(responseCode = "400", description = "잘못된 요청. 입력 데이터 유효성 검사 실패 등의 이유로 질문 작성에 실패했습니다.") - @PostMapping + @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public ApiResponseDto createQuestion(@RequestPart QuestionRequest.Post request, @RequestPart(required = false, value = "files") List multipartFiles) throws IOException { Long boardId = questionCommandService.createQuestion(request, multipartFiles); @@ -49,7 +50,7 @@ public ApiResponseDto createQuestion(@RequestPart QuestionRequest.Post req @Operation(summary = "질문 수정", description = "사용자가 질문 수정합니다. 수정한 질문의 정보를 저장하고 질문의 고유 ID를 반환합니다.") @ApiResponse(responseCode = "200", description = "질문 수정 성공. 수정한 질문의 고유 ID를 반환합니다.") @ApiResponse(responseCode = "400", description = "잘못된 요청. 입력 데이터 유효성 검사 실패 등의 이유로 질문 수정에 실패했습니다.") - @PutMapping("/{boardId}") + @PutMapping(value = "/{boardId}",consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public ApiResponseDto updateQuestion(@PathVariable Long boardId, @RequestPart QuestionRequest.Put questionUpdateDto, @RequestPart MediaRequest.Put mediaUpdateDto,