java springでCorsFilterを使ったCORS設定
java springBootで、CORSの設定方法を紹介します。
javaでは主に3つほどやり方があります。
@CrossOriginを使ってメソッドごとに設定する方法
WebMvcConfigurerAdapterを継承したconfigクラスで設定する方法
CorsFilterを用いて、設定する方法
があります。
ここでは、三つ目のCorsFilterを用いたCORSを有効にする設定を紹介します。
Configクラス
@Configuration public class CorsConfig { @Bean public CorsFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); //CORSリクエストを許可するドメイン config.setAllowedOrigins(new ArrayList<>(Arrays.asList( "https://aaa.com", "https://www.aaa.com", "http://localhost:9000", "http://aaa-dev.s3-website-ap-northeast-1.amazonaws.com" ))); //クッキー情報を送信するかどうか config.setAllowCredentials(true); //CORSリクエストを許可するHTTPメソッド config.addAllowedMethod("*"); //CORSリクエストで受信を許可するヘッダー情報 config.addAllowedHeader("*"); //CORSリクエストを許可するURLの形式(特に決まりがなければ「/**」でもOK) UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource(); configSource.registerCorsConfiguration("/**", config); return new CorsFilter(configSource); } }
CORSリクエストを許可するURLは、/aaa/**、といったようにあるパス以下全てを許可することも出来ます。
他の方法も含めて、springのドキュメントにあるのでぜひ参考にしてみてください。