diff --git a/build.gradle b/build.gradle index 06191f38..e0a42d5e 100644 --- a/build.gradle +++ b/build.gradle @@ -50,10 +50,6 @@ dependencies { implementation 'io.jsonwebtoken:jjwt-impl:0.11.5' implementation 'io.jsonwebtoken:jjwt-gson:0.11.5' - // Excel Export - implementation 'org.apache.poi:poi-ooxml:5.2.3' - implementation 'org.apache.poi:poi:5.2.3' - // Logging implementation 'org.springframework.boot:spring-boot-starter-log4j2' implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml" @@ -74,7 +70,7 @@ dependencies { testImplementation("com.navercorp.fixturemonkey:fixture-monkey-starter:1.1.11") // Rest Docs & Swagger - implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0' + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0' testImplementation 'io.rest-assured:rest-assured:5.5.0' testImplementation 'org.springframework.restdocs:spring-restdocs-restassured' testImplementation 'com.epages:restdocs-api-spec-mockmvc:0.18.2' diff --git a/src/main/java/com/debatetimer/config/WebConfig.java b/src/main/java/com/debatetimer/config/WebConfig.java index 5f3ed66f..0ce8ab1e 100644 --- a/src/main/java/com/debatetimer/config/WebConfig.java +++ b/src/main/java/com/debatetimer/config/WebConfig.java @@ -1,13 +1,11 @@ package com.debatetimer.config; -import com.debatetimer.controller.tool.export.ExcelExportInterceptor; import com.debatetimer.controller.tool.jwt.AuthManager; import com.debatetimer.service.auth.AuthService; import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Configuration; import org.springframework.web.method.support.HandlerMethodArgumentResolver; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration @@ -21,9 +19,4 @@ public class WebConfig implements WebMvcConfigurer { public void addArgumentResolvers(List argumentResolvers) { argumentResolvers.add(new AuthMemberArgumentResolver(authManager, authService)); } - - @Override - public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(new ExcelExportInterceptor()); - } } diff --git a/src/main/java/com/debatetimer/controller/tool/export/ExcelExport.java b/src/main/java/com/debatetimer/controller/tool/export/ExcelExport.java deleted file mode 100644 index bad11bb5..00000000 --- a/src/main/java/com/debatetimer/controller/tool/export/ExcelExport.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.debatetimer.controller.tool.export; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target({ElementType.METHOD}) -@Retention(RetentionPolicy.RUNTIME) -public @interface ExcelExport { - -} diff --git a/src/main/java/com/debatetimer/controller/tool/export/ExcelExportInterceptor.java b/src/main/java/com/debatetimer/controller/tool/export/ExcelExportInterceptor.java deleted file mode 100644 index 535d21c1..00000000 --- a/src/main/java/com/debatetimer/controller/tool/export/ExcelExportInterceptor.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.debatetimer.controller.tool.export; - -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import org.springframework.http.ContentDisposition; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.stereotype.Component; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.method.HandlerMethod; -import org.springframework.web.servlet.HandlerInterceptor; - -@Component -public class ExcelExportInterceptor implements HandlerInterceptor { - - private static final String SPREAD_SHEET_MEDIA_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; - private static final String EXCEL_FILE_NAME = "my_debate_template.xlsx"; - - @Override - public boolean preHandle( - HttpServletRequest request, - HttpServletResponse response, - Object handler - ) { - if (isPreflight(request)) { - return true; - } - if (isExcelExportRequest(handler)) { - setExcelHeader(response); - } - return true; - } - - private boolean isExcelExportRequest(Object handler) { - if (!(handler instanceof HandlerMethod)) { - return false; - } - - HandlerMethod handlerMethod = (HandlerMethod) handler; - return handlerMethod.hasMethodAnnotation(ExcelExport.class) - && handlerMethod.getBeanType().isAnnotationPresent(RestController.class); - } - - private boolean isPreflight(HttpServletRequest request) { - return HttpMethod.OPTIONS.toString() - .equals(request.getMethod()); - } - - private void setExcelHeader(HttpServletResponse response) { - ContentDisposition contentDisposition = ContentDisposition.attachment() - .filename(EXCEL_FILE_NAME) - .build(); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, contentDisposition.toString()); - response.setContentType(SPREAD_SHEET_MEDIA_TYPE); - } -}