본문 바로가기
JAVA

[전자정부프레임워크3.9] 클라이언트에서 요청 시에 CORS 오류 발생 관련 처리 사항

by Hwoarang757 2021. 12. 1.

[전자정부프레임워크3.9] 클라이언트에서 요청 시에 CORS 오류 발생 관련 처리 사항 

 

출처입니다. : [Spring Boot] CORS 설정하기 (tistory.com)

 

[Spring Boot] CORS 설정하기

CORS란? (Cross-Origin Resource Sharing,CORS) 란 다른 출처의 자원을 공유할 수 있도록 설정하는 권한 체제를 말합니다. 따라서 CORS를 설정해주지 않거나 제대로 설정하지 않은 경우, 원하는대로 리소스를

dev-pengun.tistory.com

 

 

Controller의 CORS 관련 예외 처리를 진행 할 메서드마다 아래 사항을 추가 하였으나 , 해결 되지 않았습니다.

response.setHeader("Access-Control-Allow-Origin","*");

	@RequestMapping(value="/v1/parameterTest.json")
	public Object parameterTest(@RequestHeader HttpHeaders headers,@RequestBody Optional<Map<String,Object>> requestBody, HttpServletResponse response, HttpServletRequest request, ModelMap model) throws Exception {
		String methodName = String.format("[%s][%s]", CLASSNAME, new Exception().getStackTrace()[0].getMethodName());
		LOGGER.error(String.format("%s Occurred", methodName));
		ResTestObject resTestObject = null;
        
    
    
        response.setHeader("Access-Control-Allow-Origin","*");
    
		return resTestObject;
    }

 

 

Annotation 으로 명시 하니 클라이언트에서 발생하던 403 Error나 CORS 관련 에러는 해소 되었습니다.

@CrossOrigin(origins = "*")

@CrossOrigin(origins = "*")
@RestController
@RequestMapping("/rest")
public class MobileController {
	private static final Logger LOGGER = LoggerFactory.getLogger(MobileController.class);
	private final String CLASSNAME = new Exception().getStackTrace()[0].getClassName();


	@Resource(name = "propertiesService")
	protected EgovPropertyService propertiesService;
    .
    .
    .

}

 

Controller 메서드 단위로도 적용 가능 한 것 같습니다.

@CrossOrigin(origins = "*")

	@CrossOrigin(origins = "*")
	@RequestMapping(value="/v1/parameterTest.json")
	public Object parameterTest(@RequestHeader HttpHeaders headers,@RequestBody Optional<Map<String,Object>> requestBody, HttpServletResponse response, HttpServletRequest request, ModelMap model) throws Exception {
		String methodName = String.format("[%s][%s]", CLASSNAME, new Exception().getStackTrace()[0].getMethodName());
		LOGGER.error(String.format("%s Occurred", methodName));
		ResTestObject resTestObject = null;
        
       	return resTestObject;
   }