Step3-kakao-tech-campus / Team3_BE

[카테캠 1기] 번개 지향 볼링 모집 커뮤니티 "번개볼링"의 백엔드 서버입니다.
2 stars 4 forks source link

CORS 도메인 허용에서 환경변수 주입 #113

Closed jagaldol closed 10 months ago

jagaldol commented 10 months ago

Description

프론트 배포 테스트 결과 환경변수로 주입한 CORS가 정상작동하지 않았습니다.

public class Configs {

    @Getter
    private static String domain;

    @Value("${bungaebowling.domain}")
    private void setDomain(String value) {
        domain = value;
    }

    public final static List<String> CORS = Collections.unmodifiableList(
            List.of("http://localhost:3000", // 리액트 개발용 3000포트
                    "http://127.0.0.1:3000")
    );

    public static List<String> getFullCORS() {
        List<String> fullCORS = new ArrayList<>(CORS);
        fullCORS.add(domain);
        return fullCORS;
    }
}

관련 코드는 위와 같고 getFullCORS를 사용하여 환경변수로 주입한 프론트 도메인까지 포함하여 CORS를 생성하려 했습니다.

aws 서버 위에서 프론트 배포를 테스트하며 DOMAIN=https://bungae.jagaldol.dev 를 넣었고

image

하지만, CORS로 서버 통신이 막혀서 Configs.java에 직접 도메인을 추가하여 서버 배포 중입니다.

크램폴린과 aws환경이 다르고 크램폴린이 도메인이 바뀔수도 있는 환경인 만큼 외부 환경변수를 통해서 하고 싶었으나 실현이 불가능했습니다.

현재 방식으로는 CORS 허용 도메인을 코드 내에 직접 작성하는 수밖에 없을 거 같습니다.

public static final List<String> CORS = Collections.unmodifiableList(
        List.of("http://localhost:3000", // 리액트 개발용 3000포트
                "http://127.0.0.1:3000",
                "https://bungae.jagaldol.dev",
                "https://k2b218aaad192a.user-app.krampoline.com")
);

더 나은 방식이 존재하는지 고민이 필요합니다.