SecurityContextHolder.getContext().getAuthentication()サーバー側で現在ログインしているユーザーを取得し、ユーザーに
ログオンします。
ここに質問があります: 3 人のユーザーがログインしているとします。サーバー側は、単にSecurityContextHolder.getContext().getAuthentication();.
お返事をありがとうございます。
SecurityContextHolder.getContext().getAuthentication()サーバー側で現在ログインしているユーザーを取得し、ユーザーに
ログオンします。
ここに質問があります: 3 人のユーザーがログインしているとします。サーバー側は、単にSecurityContextHolder.getContext().getAuthentication();.
お返事をありがとうございます。
デフォルトでは、ここには 3 つの重要事項があります。
SecurityContextHolderHTTP セッションからの各リクエストの前に入力します (リクエストが完了すると、認証オブジェクトを保存します)ThreadLocal- リクエスト処理中に認証オブジェクトを保存します認証後、対応するSecurityContextオブジェクトが HTTP セッションに格納されます。各リクエスト処理スペシャルSecurityContextPersistenceFilterが起動される前。SecurityContextHTTP セッションから (インスタンスを介して) オブジェクトをロードし、オブジェクトSecurityContextRepositoryを に注入SecurityContextしますSecurityContextHolder。詳細については、クラスのソース コードをSecurityContextPersistenceFilter参照してください。もう 1 つの重要な部分は、デフォルトで変数を使用してオブジェクトをSecurityContextHolder格納することです (したがって、スレッドごとに異なる認証オブジェクトを持つことになります)。SecurityContextThreadLocal
編集。追加の質問:
SecurityContextHolder、インスタンスではなく、静的メソッドを持つヘルパー クラスです。SecurityContextされThreadLocalます。変数を介してインスタンスSecurityContextHolderを取得/設定するために使用できるヘルパー クラスです。SecurityContextThreadLocalSecurityContextHolderを取得/設定するためにすべてのスレッドで使用される同じ静的メソッドを格納します。 SecurityContextThreadLocalvariable は、スレッドごとに異なる値を持ちます。