Spring Securityのコアクラス

上記でSpring Security の簡単な理解と使用に関するSpring Securityいくつかの知識ポイントをすでに学習しました。この記事では、そのコアクラスについて学びます。

セキュリティコンテキスト

SecurityContext現在システムにアクセスしているユーザーの詳細情報を以下の2つの方法で取得します。

方法 説明する
getAuthentication() 現在認証されているプリンシパルまたは認証されたリクエスト トークンを取得します
setAuthentication() 現在確認されている本人認証情報を変更または削除します

セキュリティコンテキストホルダー

SecurityContextHolderを保存するために使用されますSecurityContext最も一般的に使用されるgetContext()方法は、現在の を取得するために使用されますSecurityContext

SecurityContextHolder一連の静的メソッドは で定義されており、これらの静的メソッドの内部ロジックは、例えばSecurityContextHolderholdingによってSecurityContextHolderStrategy実現されますclearContext()

プロバイダーマネージャー

ProviderManager携帯電話番号、ユーザーパスワード、電子メール方式など、システムには複数の認証方式が存在する可能性があるため、さまざまな認証方式の認証を処理するために認証のリストが維持されます。

認証中、ProviderManagerの認証結果が でない場合nullは、認証が成功したことを意味し、他の認証は行われず、 に認証結果として保存されますSecurityContext失敗した場合は、エラー メッセージがスローされますProviderNotFoundException

Dao認証プロバイダー

DaoAuthenticationProviderこれはAuthenticationProvider最も一般的に使用される実装であり、ユーザーが送信したユーザー名とパスワードを取得し、それらが正しいかどうかを比較するために使用されます。正しければ、データベース内のユーザー情報を返します。

ユーザーの詳細

UserDetailこれはSpring Security、ユーザー名、パスワード、権限、その他の情報を含むユーザー エンティティです。Spring Securityデフォルトでは、組み込みクラスはセキュリティ認証Userのために実装されています。Spring Securityもちろん、自分で実装することもできます。

UserDetails次のメソッドが提供されています。

  • String getPassword(): 認証されたユーザーのパスワードを返します 返せない場合は と表示されますnull
  • String getUsername(): 認証されたユーザー名を返します。返せない場合は、次のように表示されます。null
  • boolean isAccountNonExpired(): アカウントの有効期限が切れていますか? 有効期限が切れている場合は認証できません
  • boolean isAccountNonLocked(): ユーザーがロックされているかロック解除されているかを指定します。ロックされたユーザーは認証できません。
  • boolean isCredentialsNonExpired(): ユーザーの資格情報 (パスワード) の有効期限が切れているかどうか、および期限切れの資格情報を認証できないかどうかを指定します。
  • boolean isEnabled(): 無効かどうかに関係なく、無効なユーザーは認証できません。

ユーザー詳細サービス

ユーザー関連の情報はUserDetailsServiceインターフェースを通じてロードされます。このインターフェイスの唯一のメソッドは、loadUserByUsername(String username)ユーザー名に基づいて関連情報をロードするために使用されます。戻り値はUserDetailsインターフェイスで、ユーザー名、パスワード、権限、有効かどうか、ロックされているかどうか、有効期限が切れているかどうかなどのユーザー情報が含まれます。

付与された権限

GrantedAuthorityメソッドは で定義されていますgetAuthority()このメソッドは、権限に対応する文字列を表す文字列を返します。対応する権限が文字列で表現できない場合に返しますnull

GrantedAuthorityインターフェイスはUserDetailsServiceを介し​​てロードされ、その後割り当てられますUserDetails

フィルター

FilterユーザーはWebリクエストを処理し、セキュリティ検証を実行します。Filter認証、認可、ログ記録など、リクエストの前後にいくつかのアクションを実行します。受信リクエストをインターセプトしHTTP、定義されたセキュリティ ルールに従って処理します。

FilterCsrfFilterUsernamePasswordAuthenticationFilterなどがありますLogoutFilter

pexels-the-cactusena-17497006.jpg

参考

  • 「スプリングブーツ実践スクール」

Supongo que te gusta

Origin juejin.im/post/7262297715911409701
Recomendado
Clasificación