Spring Boot

高度な認証と認可

高度な認証、@PreAuthorize/@PostAuthorize、roles、permissions、SpEL を用いたきめ細かな認可

30 面接問題·
Senior
1

Spring Security における UserDetailsService インターフェースの主な役割は何ですか?

回答

UserDetailsService は、認証時にデータソース(データベース、LDAP など)からユーザー情報を読み込む役割を担います。その loadUserByUsername() メソッドは、username、password、roles、authorities を含む UserDetails オブジェクトを返します。Spring Security はこの情報を使って認証情報を検証し、SecurityContext を構築します。

2

Spring Security 6+ でメソッドレベルのセキュリティを有効にするアノテーションはどれですか?

回答

@EnableMethodSecurity は、Spring Security 6+ でメソッドレベルのセキュリティを有効にする最新のアノテーションです。古い @EnableGlobalMethodSecurity を置き換え、デフォルトで @PreAuthorize、@PostAuthorize、@Secured を有効にします。AOP プロキシベースの構成を使用してメソッド呼び出しをインターセプトし、認可をチェックします。

3

@PreAuthorize アノテーションはいつ認可をチェックしますか?

回答

@PreAuthorize はメソッド実行の前に認可をチェックします。SpEL 条件が false を返すと AccessDeniedException がスローされ、メソッドは決して実行されません。これにより、最初の段階で許可されていないリソースへのアクセスを防げます。対照的に、@PostAuthorize は実行後にチェックするため、ユーザーに応じて結果をフィルタリングするのに役立ちます。

4

Spring Security における hasRole() と hasAuthority() の主な違いは何ですか?

5

データベースからユーザーを読み込むカスタム UserDetailsService をどのように実装しますか?

+27 面接問題

次の面接に向けてSpring Bootをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める