1. はじめに 前回の記事では、AuthenticationManager の初期化の詳細を分析しましたが、その中のコードの一部が多くの学生の注目を集めました。
上記は、HttpSecurity オブジェクトから Spring のアプリケーション コンテキスト オブジェクト ApplicationContext を直接取得します。これはどうやって実現するのでしょうか? SharedObject の概念とは何ですか?今日はこれを理解しましょう。 2. 共有オブジェクト Spring Security では、SharedObject はオブジェクトでもインターフェースでもなく、特定の種類の「共有可能な」オブジェクトを表す一般的な用語です。 名前が示すように、SharedObject は共有可能なオブジェクトを意味します。その機能は、異なるスコープ構成でオブジェクトを共有する場合に、一部のオブジェクトを SharedObject に変換することです。これは、分散オブジェクトに少し似ています。理解しやすくするために、関連するアーキテクチャを以下に示します。 構成クラスの構成 SharedObject を操作できるのは、AbstractConfiguredSecurityBuilder または HttpSecurityBuilder の実装クラスのみです。 1 つは SharedObject を登録することであり、もう 1 つは SharedObject を取得することです。 共有オブジェクトの登録 SharedObject は、クラス タイプがキー、インスタンスが値として HashMap に格納されます。 AuthenticationManagerBuilder の注入 よく知られている AuthenticationManagerBuilder がここで共有されています。 別の部分は、すべての HttpSecurityBuilder オブジェクトが初期化されるときに登録されます。初期化と構成は SecurityConfigurer によって完了します。
上記の 2 つのメソッドは、それぞれ HttpSecurityBuilder を初期化および構成するために使用されます。たとえば、よく知られている WebSecurityConfigurerAdapter は HttpSecurity を構成するために使用されます。 init メソッドには関連するコードがあります:
これは、記事の冒頭で ApplicationContext を取得できる根本的な理由でもあります。 SharedObject の取得と使用 SharedObject としてマークされているクラスはどれですか? SecurityConfigurer には、認証と承認に関連する特定の機能を構成するために使用される多くの実装があります。たとえば、OAuth2ClientConfigurer は OAuth2 クライアントを構成するために使用され、いくつかのよく使用されるオブジェクトが SharedObject として設定されます。
HttpSecurity 構成の他の場所で ClientRegistrationRepository を使用する必要がある場合は、取得メソッドを記述しなくても、記事の冒頭と同様に getSharedObject を介して直接取得できます。 3. 結論 SharedObject は、Spring Security が提供する非常に便利な機能です。オブジェクトを別の場所で再利用する必要がある場合は、SharedObject として登録するか、または冒頭で示したように Spring IoC に直接挿入して取得することもできます。この機能により、構成が簡素化され、コードの読みやすさが向上し、Spring Security の DSL 機能の基盤が築かれます。 この記事はWeChatの公開アカウント「Coder Xiaopangge」から転載したものです。下のQRコードからフォローできます。この記事を転載する場合は、Coder Xiaopangge の公式アカウントまでご連絡ください。 |
<<: 超詳細な分散スケジューリングフレームワーク Elastic-job の実践的な説明
11月25日、国内データベース業界の有名企業であるDAMOは北京で「抜刀、智能の未来」2020年DA...
トークショー俳優のヤン・リーが、今年最もストレート男性に対する差別的なジョークをでっち上げた――あな...
二流のローカルタレントサイトは比較的小規模で、実力があります。一流都市のタレントサイトとの激しい競争...
Raksmart データセンターでは、クリスマス + 元旦のプロモーションを実施しています: (1)...
PolicyMic の場合、ユーザーの Facebook ニュース フィードがホームページになります...
熾烈な競争と高まる顧客要求を特徴とする業界では、スピードが重要な差別化要因となっています。迅速なアプ...
SEO を学びたい人は、とても混乱すると思います。まず何を学ぶべきでしょうか?どうやって学ぶの?学ん...
チームは端午節の期間中に3日間の休暇を取ることにしたので、王世凡は本を買って故郷に帰ることにした。数...
[[389269]]シナリオの説明最近、Redis を使用しているときに、分散ロックに似たシナリオに...
アリババグループは11月12日早朝、ダブル11プロモーション期間中のアリペイでの総売上高が191億円...
ウェブサイトを運用または最適化する際には、ウェブサイトで何ができるのか、ユーザーにどのようなサービス...
1. ユーザーシステムのアップグレード Baidu ウェブマスタープラットフォームのユーザー管理機能...
Synhosting は、2002 年に設立されたホスティング プロバイダーです。現在、仮想ホストの...
企業のデータが単一のデータセンターまたはクラウドに保存されている場合、データ管理は困難になります。企...
10月23日、Baiduのアルゴリズムが更新されました。今回のBaiduシステムアルゴリズムのアップ...