yagibrary

あだ名のやぎと図書館のlibraryを組み合わせてyagibraryです。本から学んだことをみなさんに紹介します。

【読書メモ】【プロになるためのSpring入門】第14章 Spring Securityを用いた認証と認可 その2

14.6 リクエストの認可

リクエストの認可のコンフィグレーションじゃ、SecurityFilterChainのBean定義で行います。

▼ソース14.2 リクエストの認可のコンフィグレーション

@Configuration
@EnableWebSecurity
public class SecurityConfig {
    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { ❶
        http
            .authorizeHttpRequests()
            .requestMatchers(HttpMethod.POST, "/admin/**").hasRole("ADMIN") ❷
            .requestMatchers("/admin/**").hasAnyRole("ADMIN", "STAFF") ❸
            .anyRequest().permitAll(); ❹
        return http.build();
    }
}

❶の行で@Beanメソッドを追加しています。戻り値の型は、Bean定義したいSecurityFilterChainです。引数で受け取っているのは、SecurityFilterChainオブジェクトを生成してくれるHttpSecurityオブジェクトです。HttpSecurityオブジェクトは、自動的にDIコンテナに登録されるため、@Beanメソッドの引数で受け取ることができます。

14.7 ログイン画面

14.8 認可に失敗したときのエラー画面

14.9 認証用のデータの取得

14.10 画面表示の認可