【シロの入門から実戦までのチュートリアル】第2章 シロの紹介

2. シロの紹介

2.1 シロとは

ShiroはApacheのオープンソースフレームワークで、ユーザー認証とユーザー認可を実現するパーミッション管理フレームワークです。

Spring にはパーミッション フレームワークである Spring Security (旧称 Acegi) がありますが、Spring に依存しすぎて、Shiro ほど使いやすくありません。

ShiroはSpringに依存しない Webアプリケーションの権限管理だけでなく、C/Sシステムや分散システムの権限管理も実現 Shiroは軽量なフレームワークであり、エンタープライズプロジェクトでShiroを利用するケースが増えている.

システムの権限管理をShiroで実現し、効果的に開発効率を向上させ、開発コストを削減します。

2.2 3 つの主要な概念

件名: 現在操作しているユーザーを表すものとして単純に理解されます。

SecurityManager: すべてのサブジェクトを管理するために使用されます。

レルム: 許可情報を確認するために使用されます。

ここに画像の説明を挿入

サブジェクト: サブジェクト、現在アプリケーション セキュリティ パートに参加しているサブジェクト。ユーザー、サードパーティのサービス、cron ジョブなどの可能性があります。主に、現在のソフトウェアと相互作用しているものを指します。すべてのサブジェクトには SecurityManager が必要です。サブジェクトと対話する場合、これらの対話は実際には SecurityManager との対話に変換されます。

SecurityManager: Shiro アーキテクチャのコアであるセキュリティ マネージャは、Shiro 内のすべてのオリジナル コンポーネントの傘のようなものです。ただし、SecurityManager が構成されると、SecurityManager の使用は少なくなり、開発者はほとんどの時間をサブジェクトに費やします。サブジェクトと対話するとき、SecurityManager は実際には舞台裏で、サブジェクトを持ち上げていくつかのセキュリティ操作を実行できるようにします。

レルム: レルムは、Shiro とアプリケーションの間のブリッジとして機能します. ユーザー アカウントやアクセス制御などのセキュリティ データを操作する場合、Shiro は 1 つ以上のレルムを探します. Shiro は、直接使用できるいくつかの Realms を提供します. デフォルトの Realms がニーズを満たさない場合は、独自の Realms をカスタマイズすることもできます.

2.3 全体のアーキテクチャ

ここに画像の説明を挿入

  • オーセンティケーター: オーセンティケーター、ログインとログアウトを管理します。
  • 承認者: サブジェクト権限を付与する承認者。
  • セッション マネージャー: セッション マネージャー、セッション管理メカニズム。Web コンテナなしでセッションを使用します。
  • セッション Dao: セッション操作、主に追加、削除、変更、およびチェック。
  • キャッシュ マネージャー: キャッシュ マネージャー。
  • Pluggable Realms (1 つ以上): shiro とデータベース間の接続、認証と承認の検証。
  • 暗号化: データの暗号化。

2.4 コア コンポーネント

サブジェクトはサブジェクトであり、外部参照はサブジェクトと相互作用します。サブジェクトは、現在操作しているユーザーを記録し、現在の操作のサブジェクトとしてのユーザーの概念を理解します。ユーザーは、ブラウザまたは実行中のプログラムを介して要求する場合があります。 . Subject は Shrio のインターフェースであり、認証と認可に関連する多くのメソッドを定義します. 外部プログラムは Subject を介して認証と認可を実行し、Subject は SecurityManager を介して認証と認可を実行します.

SecurityManager は、すべてのサブジェクトのセキュリティを管理するセキュリティ マネージャであり、Shrio の中核であり、すべてのサブジェクトの認証と承認は SecurityManager を通じて完了できます。基本的に、SecurityManager は Authenticator を通じて認証し、Authorizer を通じて承認し、SessionManager を通じてセッションを管理します。SecurityManager は、Authenticator、Authorizer、SessionManager の 3 つのインターフェースを継承するインターフェースです。

Authenticator は、ユーザー ID を認証する Authenticator です. Authenticator はインターフェイスです. Shrio は ModularRealmAuthenticator 実装クラスを提供します. ModularRealmAuthenticator は基本的にほとんどのニーズを満たすことができます.また、Authenticator をカスタマイズすることもできます.

オーソライザーはオーソライザーであり、ユーザーはオーセンティケーターによって認証され、機能にアクセスする際に、ユーザーがその機能の操作権限を持っているかどうかをオーソライザーを使用して判断する必要があります。

レルムはドメインであり、データソースのデータ ソースに相当します。SecurityManager は、セキュリティ認証のためにレルムを介してユーザー権限データを取得する必要があります。たとえば、ユーザー ID データがデータベースにある場合、レルムはユーザー ID 情報をデータベースから取得する必要があります。データベース。Realm をデータ ソースからデータを取得するだけのものと理解しないでください。Realm には認証と承認の検証に関連するコードがあります。

SessionManager はセッション管理です. Shrio フレームワークは Web コンテナの Session に依存しない一連のセッション管理を定義しているため, Shrio は Web 以外のアプリケーションでも使用でき, 分散アプリケーションのセッション管理を一元化することもできます.機能により、シングル サインオンの実装が可能になります。

SessionDAO はセッション DAO であり、Session セッション操作のためのインターフェイスのセットです。たとえば、Session をデータベースに格納する場合は、jdbc を介してセッションをデータベースに格納できます。

CacheManager はキャッシュ管理であり、ユーザー権限データをキャッシュに保存し、パフォーマンスを向上させることができます。

Cryptografy はパスワード管理です. Shrio は、開発を容易にするための復号化/暗号化コンポーネントのセットを提供します. たとえば、一般的なハッシュおよび暗号化/復号化機能を提供します。

おすすめ

転載: blog.csdn.net/ligonglanyuan/article/details/125677793