Spring Security のログイン フォームをカスタマイズしてカスタム データベースを使用する方法。

WBOY
リリース: 2024-07-16 13:00:54
オリジナル
605 人が閲覧しました

How to customize the login form in Spring Security to use a custom database.

カスタム データベースを使用するように Spring Security のログイン フォームをカスタマイズするには、次の手順に従います。

カスタム UserDetailsS​​ervice を作成します:

UserDetailsS​​ervice インターフェイスを実装して、カスタム データベースからユーザーの詳細を読み込みます。

loadUserByUsername メソッドをオーバーライドして、データベースにユーザーの詳細をクエリします。

Spring Security を構成する:

Spring Security 構成で、UserDetailsS​​ervice Bean を定義します。

カスタム UserDetailsS​​ervice を使用するように AuthenticationManager を構成します。

ログイン ページ URL とログイン処理 URL を指定して、ログイン フォームをカスタマイズします。

カスタム ログイン フォームを実装します:

カスタム ログイン フォーム用の JSP または HTML ファイルを作成します。

ユーザー名とパスワードの入力フィールドと送信ボタンを含めます。

Spring Security 構成で指定されたログイン処理 URL を使用してフォームを送信します。

実装例は次のとおりです:

  1. カスタム UserDetailsS​​ervice を作成する

パブリック クラス CustomUserDetailsS​​ervice は UserDetailsS​​ervice {
を実装します @Autowired
private JdbcTemplate jdbcTemplate;

@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
    String query = "SELECT * FROM users WHERE username = ?";
    User user = jdbcTemplate.queryForObject(query, new Object[]{username}, new UserRowMapper());
    if (user == null) {
        throw new UsernameNotFoundException("User not found");
    }
    return user;
}
ログイン後にコピー

}

  1. Spring Security を構成する

@構成
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private CustomUserDetailsS​​ervice CustomUserDetailsS​​ervice;

@Autowired
private PasswordEncoder passwordEncoder;

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.userDetailsService(customUserDetailsService)
        .passwordEncoder(passwordEncoder);
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .antMatchers("/login").permitAll()
            .anyRequest().authenticated()
        .and()
        .formLogin()
            .loginPage("/login")
            .loginProcessingUrl("/login")
            .defaultSuccessUrl("/welcome")
            .failureUrl("/login?error")
            .permitAll();
}
ログイン後にコピー

}

  1. カスタム ログイン フォームを実装する

src/main/webapp/WEB-INF/views ディレクトリ (または同等の場所) にlogin.jsp (またはlogin.html) ファイルを作成します。




ログイン


ログイン




ユーザー名:



パスワード:


ログイン


ユーザー名またはパスワードが無効です。
/c:if

この例では、ログイン フォームは /login URL に送信されます。これは、Spring Security 構成で指定されたログイン処理 URL です。

これらの手順に従うことで、Spring Security のログイン フォームをカスタマイズして、ユーザー認証にカスタム データベースを使用できます。

以上がSpring Security のログイン フォームをカスタマイズしてカスタム データベースを使用する方法。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート