Spring Security におけるクロスオリジン設定手順
Spring SecurityにてCORS設定を行うステップは以下の通り
- pom.xmlファイルにspring-boot-starter-webとspring-boot-starter-securityへの依存を追加します。
- WebSecurityConfigという名前の設定クラスを作成し、@EnableWebSecurityアノテーションを使用してWebセキュリティ機能を有効にします。
- クロスオリジン設定: WebSecurityConfigクラス内のconfigure(HttpSecurity http)メソッドをオーバーライドし、http.cors()メソッドを使ってクロスオリジンを設定。
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors();
}
// 其他配置...
}
- CorsConfigurationSource Beanを作成:CorsConfigurationSourceという名前のBeanを作成し、そのメソッド内でクロスオリジン設定を行います。
@Bean
public CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("*"));
configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
configuration.setAllowedHeaders(Arrays.asList("Authorization", "Content-Type"));
configuration.setMaxAge(3600L);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
- Spring Securityのフィルタの配置:WebSecurityConfigクラス内でconfigure(WebSecurity web)メソッドをオーバーライドし、web.ignoring().antMatchers(“/**”)メソッドを呼び出してSpring Securityフィルタが CORS設定を無視するように設定します。
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/**");
}
これらのステップを完了することで、Spring Securityはクロスドメインリクエストを許可します。