Shiro概述
1. shiroとは
Apache ShiroはJavaのセキュリティフレームワークです。Shiroは、JavaSE環境だけでなくJavaEE環境でも使用できる十分に優れたアプリケーションを簡単に開発できます。Shiroは、認証、承認、暗号化、セッション管理、Webとの統合、キャッシングなどを完了するのに役立ちます。
2. shiroを学ぶ理由
1. shiroは、セキュリティ認証に関連する機能を抽出してフレームワークを形成するため、shiroを使用すると、認証や承認などの機能の開発を迅速に完了でき、システムコストを削減できます。
2. Shiroは広く使用されており、ShiroはWebアプリケーション、非Webアプリケーション、およびクラスター分散アプリケーションで実行でき、ますます多くのユーザーがshiroを使い始めています。
javaフィールドのSpringセキュリティ(以前のAcegi)もオープンソースの著作権管理フレームワークですが、Springセキュリティの実行はSpringに依存しており、shiroは比較的独立しています。主な理由は、shiroがシンプルで柔軟性があり、shiroを選択するユーザーが増えているためです。 。
3.基本機能
1.認証 ID認証/ユーザーが対応するIDを持っているかどうかを確認するためのログイン。
2.承認 、つまり認証の検証。認証されたユーザーが特定の承認を持っているかどうかを確認します。つまり、ユーザーが操作を実行できるかどうかを判断します。一般的な例として、ユーザーに特定の役割があるかどうかを確認します。または、ユーザーがリソースに対して特定の権限を持っているかどうかの詳細な検証。
3.セッションマネージャーの セッション管理、つまり、セッションはユーザーがログインした後のセッションです。ログアウトする前のすべての情報はセッション内にあります。セッションは通常のJavaSE環境でも、Web環境でもかまいません。
4.データのセキュリティを保護するための暗号化暗号 化(プレーンテキストストレージではなくデータベースに保存されるパスワード暗号化など)。
5、Webサポート Webサポートは、Web環境に簡単に統合できます。
6.たとえば、ユーザーがログインした後、キャッシュを キャッシュすることで、ユーザー情報とロール/権限を毎回確認する必要がなくなり、効率が向上します。
7.並行性 shiroはマルチスレッドアプリケーションの同時検証をサポートします。つまり、1つのスレッドで別のスレッドが開始された場合、権限は自動的に伝播されます。
8.テスト はテストサポートを提供します。
9、Run As は、あるユーザーが別のユーザー(許可する場合)になりすましてアクセスすることを許可します。
10.覚えておいてください。 これは非常に一般的な機能です。つまり、一度ログインすると、次回戻ってきたときにログインする必要はありません。
注:Shiroはユーザーと権限を維持しません。これらは自分で設計/提供する必要があり、対応するインターフェイスを介してShiroに挿入されます。
4.アーキテクチャの説明
1、件名
サブジェクトはサブジェクトであり、外部アプリケーションはサブジェクトと対話します。サブジェクトは、現在操作しているユーザーを記録し、ユーザーの概念を現在の操作のサブジェクトとして理解します。ブラウザを通じて要求されたユーザー、または実行中のプログラムである可能性があります。サブジェクトはshiroのインターフェースです。認証と承認に関連する多くのメソッドがインターフェースで定義されています。外部プログラムはサブジェクトによって認証および承認され、サブジェクトはSecurityManagerによって認証および承認されます
2、SecurityManager【/sɪ'kjʊərətɪ/】
SecurityManagerは、すべてのサブジェクトのセキュリティを管理するセキュリティマネージャであり、shiroのコアであり、すべてのサブジェクトのセキュリティ管理を担当します。サブジェクトの認証と承認はSecurityManagerを介して完了することができ、本質的に、SecurityManagerはAuthenticatorによって認証され、Authorizerによって承認され、SessionManagerによってセッション管理が行われます。
SecurityManagerは、Authenticator、Authorizer、およびSessionManagerの3つのインターフェースを継承するインターフェースです。
3、Authenticator
Authenticatorは、ユーザーのIDを認証するオーセンティケーターです。Authenticatorはインターフェースです。ShiroはModularRealmAuthenticator実装クラスを提供します。ModularRealmAuthenticatorは基本的にほとんどのニーズを満たし、オーセンティケーターをカスタマイズすることもできます。
4、オーソライザー
オーソライザーはオーソライザーです。ユーザーはオーセンティケーターによって認証されます。関数にアクセスするとき、オーソライザーはユーザーがこの関数の操作権限を持っているかどうかを判断する必要があります。
5、レルム
レルムはレルムであり、データソースデータソースと同等です。SecurityManagerは、セキュリティ認証のためにレルムを介してユーザー権限データを取得する必要があります。たとえば、ユーザーIDデータがデータベースにある場合、レルムはデータベースからユーザーID情報を取得する必要があります。
注:レルムをデータソースからデータを取得するだけだと理解しないでください。レルムには認証と検証に関連するコードがあります。
6、sessionManager
sessionManagerはセッション管理です。shiroフレームワークは一連のセッション管理を定義します。これはWebコンテナのセッションに依存しないため、shiroは非Webアプリケーションで使用でき、分散アプリケーションセッションの管理に集中できます。シングルサインオンを実装します。
7、SessionDAO
SessionDAOはセッションdaoであり、セッションセッション操作の一連のインターフェースです。たとえば、セッションをデータベースに保存する場合は、jdbcを介してセッションをデータベースに保存できます。
8、CacheManager
CacheManagerは、ユーザー権限データをキャッシュに格納するキャッシュ管理であり、パフォーマンスを向上させることができます。
9、暗号化【/krɪp'tɒgrəfɪ/】
暗号化はパスワード管理で、Shiroは開発を容易にするための暗号化/復号化コンポーネントのセットを提供します。たとえば、一般的に使用されるハッシュ、暗号化/復号化、その他の機能を提供します。