SpringBootでセキュリティ認証と認可を実装する方法は何ですか?

Spring Bootを使用すると、Spring Securityを使ってセキュリティ認証や認可を実装することができます。Spring Securityは強力で高度にカスタマイズ可能なフレームワークであり、ユーザー認証、ユーザー認可、パスワードの暗号化、セッション管理など、さまざまなセキュリティ機能を簡単に実装できます。

Spring BootでSpring Securityを使用して認証と認可を実装する一般的な手順は次のとおりです。

  1. Spring Securityの依存関係を追加してください。

pom.xmlファイルにSpring Securityの依存関係を追加してください。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
  1. WebSecurityConfigurerAdapterを継承した設定クラスを作成します。
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/admin/**").hasRole("ADMIN")
                .antMatchers("/user/**").hasRole("USER")
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login")
                .defaultSuccessUrl("/home")
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .inMemoryAuthentication()
                .withUser("admin").password("{noop}admin123").roles("ADMIN")
                .and()
                .withUser("user").password("{noop}user123").roles("USER");
    }
}
  1. 基本のセキュリティルールが含まれる設定クラスに設定されています。
  1. /admin/へのアクセスは、ADMINのロールが必要です。
  2. ユーザーの権限が必要な場合にのみ、/user/**のパスにアクセスできます。
  3. 他の経路にアクセスするには、認証が必要です。
  4. ログインページが設置され、ログイン成功後のリダイレクトページ、ログアウトページがあります。
  1. アプリを起動し、認証が必要なページにアクセスすると、ログインページにリダイレクトされます。正しいユーザー名とパスワードを入力すると、それに応じたページにリダイレクトされます。

総括すると、Spring Securityを使用すると、簡単にセキュリティ認証と認可機能を実装できます。簡単な設定だけで完了します。もちろん、Spring Securityはさらに高度な機能やカスタマイズオプションも提供しており、具体的な要件に応じてさらに設定や拡張が可能です。

コメントを残す 0

Your email address will not be published. Required fields are marked *