Springboot　WebSecurityConfigurerAdapterが使用できない件

# はじめに

Spring解体新書　第2版の書籍にて学習を実施していました。
11章のSpringSecurityに関する部分だったのですが、書籍通りにソースを記述しても、エラーが解消されませんでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1041138/b7dd0d04-034d-1ecd-92b7-8084353b4cfd.png)

***
# 問題点
`WebSecurityConfigurerAdapter`なんて存在しないよと怒られていました。。
サンプルソースとも全く同じなのに、、
```java
package com.example.demo.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    /** セキュリティの対象外を設定 */
    @Override
    public void configure(WebSecurity web) throws Exception {
        // セキュリティを適用しない
        web
            .ignoring()
                .antMatchers("/webjars/**")
                .antMatchers("/css/**")
                .antMatchers("/js/**")
                .antMatchers("/h2-console/**");
    }

    /** セキュリティの各種設定 */
    @Override
    protected void configure(HttpSecurity http) throws Exception {

        // ログイン不要ページの設定
        http
            .authorizeRequests()
                .antMatchers("/login").permitAll() //直リンクOK
                .antMatchers("/user/signup").permitAll() //直リンクOK
                .anyRequest().authenticated(); // それ以外は直リンクNG

        // CSRF対策を無効に設定（一時的）
        http.csrf().disable();
    }
}
```
# 調べる中での解決策
Spring公式ブログにより詳細な解説がありました
https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter

またこの方の記事で詳細的な内容を学ばせて頂きました。
最近（5.4〜6.0）のSpring Securityでは、セキュリティ設定の書き方が大幅に変わってみたいです。
（書籍は変更しないとですね、、）
https://qiita.com/suke_masa/items/908805dd45df08ba28d8

以下のように修正してみました。動いたので恐らく大丈夫です。。
```java
package com.example.demo.config;

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.config.annotation.web.configuration.WebSecurityCustomizer;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;

@Configuration
public class SecurityConfig {

    /** セキュリティの対象外を設定 */
	@Bean
	public WebSecurityCustomizer webSecurityCustomizer() {
	    return web -> web.ignoring().requestMatchers(
	            new AntPathRequestMatcher("/webjars/**")
	           ,new AntPathRequestMatcher("/css/**")
	           ,new AntPathRequestMatcher("/js/**")
	           ,new AntPathRequestMatcher("/h2-console/**"));
	}

    /** セキュリティの各種設定 */
    @Bean
	public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception  {

        // ログイン不要ページの設定
        http
            .authorizeHttpRequests()
                .requestMatchers("/login").permitAll() //直リンクOK
                .requestMatchers("/user/signup").permitAll() //直リンクOK
                .anyRequest().authenticated(); // それ以外は直リンクNG

        // CSRF対策を無効に設定（一時的）
        http.csrf().disable();
        
        return http.build();
    }
}

```