はじめに
SpringSecurityを久々に触り、ん?となった箇所があったため備忘録の意も踏まえて記事にします。
SpringSecurityの設定ファイルであるSecurityConfig
を記述していたときのことです。
問題点
SecurityConfig
を以下のように書いたところ、「WebSecurityConfigurerAdapter
なんて無い!」と怒られてしまいました。
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{
@Override
public void configure(HttpSecurity http) throws Exception {}
}
エラーのメッセージは以下の通りです。
The import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter cannot be resolved
こちらの記事によると、バージョンアップによって使えなくなったみたいです。
解決方法
以下のようにSecurityFilterChain
をBeanで定義することで同じ振る舞いを実現できます。
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http.build();
}
}
メソッドの中身は基本的にこれまでと同じように書くことができます。
バージョン上がったことで動かなくなると、もともとあった記事が廃れてしまいますね…。