eulji-hf.netlify.app
*.eulji-hf.netlify.app
www.eulji-hf.netlify.app

CorsConfig.java 원래버전

package dreamdays.Helf.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

import java.util.List;

@Configuration
public class CorsConfig {

    @Bean
    public CorsConfigurationSource corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowedOriginPatterns(List.of(
                //리액트 로컬
                "<http://localhost:3000>",
                //프론트배포를 하면 그 도메인을 넣으면 됨
                "<https://eulji-hf.netlify.app>",
                "<http://127.0.0.1:5500>"
        ));
        config.addAllowedMethod("*");
        config.addAllowedHeader("*");
        config.addExposedHeader("Set-Cookie");
        config.addExposedHeader("Authorization");
        config.setAllowCredentials(true);

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);
        return source;
    }
}

재수정 버전

package dreamdays.Helf.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

import java.util.List;

@Configuration
public class CorsConfig {

    @Bean
    public CorsConfigurationSource corsFilter() {
        CorsConfiguration config = new CorsConfiguration();

        // 클라이언트의 origin(도메인) 추가
        config.setAllowedOriginPatterns(List.of(
                "<http://localhost:3000>",          // 로컬 환경 (예: React 로컬 개발 서버)
                "<https://eulji-hf.netlify.app>"   // 배포된 프론트엔드 URL
        ));

        // 모든 HTTP 메서드 허용 (GET, POST, PUT 등)
        config.addAllowedMethod("*");

        // 모든 요청 헤더 허용
        config.addAllowedHeader("*");

        // 'Content-Type'을 허용하는 헤더 추가
        config.addAllowedHeader("Content-Type");

        // 특정 응답 헤더를 클라이언트로 전달하도록 설정
        config.addExposedHeader("Set-Cookie");
        config.addExposedHeader("Authorization");

        // 자격 증명(쿠키, 인증 헤더 등)을 허용
        config.setAllowCredentials(true);

        // OPTIONS 메서드를 명시적으로 허용하여 preflight 요청에 응답하도록 설정
        config.addAllowedMethod("OPTIONS");

        // CORS 설정을 모든 URL 경로에 적용
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);

        return source;
    }
}

💻 ec2 우분투 코드들

nohup java -Duser.timezone=Asia/Seoul -jar build/libs/*SNAPSHOT.jar > ./output.log 2>&1 &

이러면 로그가 확인이 안된다. 이 로그를 확인할 수 있는 방법

tail -f ./output.log

⚠️ 주의사항! : nohup을 사용하면 로컬에서 컴퓨터가 꺼져도 서버가 계속 구동되니 코드 변경이나 수정사항이 있어 깃을 변경하거나 pull을 하려면 반드시 서버를 꺼야한다.