cors-origin-null

요청의 Origin이 Null이라 CORS가 뜨는 문제

상황

  • 배포 상황

    • spring boot 서버, thymeleaf 웹페이지
    • docker 배포
    • nginx proxy manager로 포트포워딩 중
  • 문제

    • form을 통해서 POST request를 날림
    • 근데 origin이 null이 되어있어서 CORS에 걸려서 403
    2026-03-02T03:44:25.296Z DEBUG 1 --- [main-server] [ctor-http-nio-3] o.s.w.s.adapter.HttpWebHandlerAdapter    : [93781ce9-35] HTTP POST "/admin/scenarios/generate"
    2026-03-02T03:44:25.297Z DEBUG 1 --- [main-server] [ctor-http-nio-3] o.s.w.c.reactive.DefaultCorsProcessor    : Reject: 'null' origin is not allowed
    2026-03-02T03:44:25.298Z DEBUG 1 --- [main-server] [ctor-http-nio-3] o.s.w.s.adapter.HttpWebHandlerAdapter    : [93781ce9-35] Completed 403 FORBIDDEN  
    
    • 응답에 referrer-policy: no-referrer가 있음
      • no-referrer로 되어있어서 브라우저가 요청을 보낼때 origin 정보를 보내지 않음

해결

reference

  • nginx proxy manager에서 add header 설정해야함
  • 근데 이렇게 global하게 설정하면 각 location의 설정에 따라 덮어씌워짐
    • nginx의 상속 매커니즘: location 블록에 add header이 하나라도 있으면 블럭 밖의 설정은 다 무시됨
      nginx-custom-config
  • 아래와 같이 location에 직접 설정을 입력
    nginx-location-config