MOCK API -> csrf 제외

This commit is contained in:
현성필
2024-04-25 11:31:44 +09:00
parent 852e55ac24
commit eab712bad9
4 changed files with 73 additions and 8 deletions
@@ -2,6 +2,7 @@ package com.eactive.testmaster.api.controller;
import com.eactive.testmaster.api.entity.MockRoute;
import com.eactive.testmaster.api.service.MockRouteService;
import com.eactive.testmaster.config.CsrfExclusionService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +28,9 @@ public class MockApiHandlerMapping {
@Autowired
private RequestMappingHandlerMapping requestMappingHandlerMapping;
@Autowired
private CsrfExclusionService csrfExclusionService;
@PostConstruct
public void initialize() {
mockRouteService.initAllRoutes();
@@ -43,6 +47,9 @@ public class MockApiHandlerMapping {
try {
requestMappingHandlerMapping.registerMapping(mappingInfo, mockApiController, MockApiController.class.getDeclaredMethod("handleRequest", HttpServletRequest.class));
if (mockRoute.getMethod().equalsIgnoreCase("POST") || mockRoute.getMethod().equalsIgnoreCase("PUT")) {
csrfExclusionService.addExcludedPath(mockRoute.getPathPattern());
}
logger.info("Registered mapping for {} {}", mockRoute.getMethod(), mockRoute.getPathPattern());
} catch (NoSuchMethodException e) {
logger.error("Error registering mapping", e);
@@ -54,7 +61,9 @@ public class MockApiHandlerMapping {
.paths(mockRoute.getPathPattern())
.methods(RequestMethod.valueOf(mockRoute.getMethod()))
.build();
if (mockRoute.getMethod().equalsIgnoreCase("POST") || mockRoute.getMethod().equalsIgnoreCase("PUT")) {
csrfExclusionService.removeExcludedPath(mockRoute.getPathPattern());
}
requestMappingHandlerMapping.unregisterMapping(mappingInfo);
logger.info("Unregistered mapping for {} {}", mockRoute.getMethod(), mockRoute.getPathPattern());
}