[シロ] はじめに 概要

1.とは

Apache Taro は、強力で使いやすい Java セキュリティ (権限) フレームワークです。士郎は終わらせることができる
統合: 認証、認可、暗号化、セッション管理、Web との統合、キャッシュなど。シロを使用すると、迅速かつ簡単に次のことができます。
最小のモバイル アプリから最大の Web アプリケーションやエンタープライズ アプリケーションまで、あらゆるアプリケーションを保護します。

公式サイト:https://shiro.apache.org/ 

2. なぜシロを使用するのですか?

フレームワークの状況は2003 年以降大きく変化したため、現在でも多くのシステムが使用されています。
シロさん。これは シロ の特性と切り離せないものです。
使いやすさ:Shiro を使用してシステム セキュリティ フレームワークを構築するのは簡単です。初めてでもすぐにマスターできる
グリップ。
包括的:Shiro には、システム セキュリティ フレームワークに必要な機能が含まれており、セキュリティ ニーズに対応する「ワンストップ ショップ」です。
柔軟性:Shiro はあらゆるアプリケーション環境で動作します。Web、EJB、IoC環境でも利用可能ですが
で動作しますが、それらに依存する必要はありません。また、Shiro は仕様や多くの依存関係を強制しません。
強力な Web サポート:Shiro は、アプリケーション URL に基づいて、優れた Web アプリケーション サポートを提供します。
REST などの Web プロトコルは柔軟なセキュリティ ポリシーを作成し、ページ出力を制御するために一連の JSP ライブラリが提供されます。
強力な互換性:Shiro のデザイン パターンにより、他のフレームワークやアプリケーションと簡単に統合できます。シロさんと
Spring、Grails、Wicket、Tapestry、Mule、Apache Camel、Vaadin などのフレームワークとのシームレスな統合。
コミュニティ サポート:Shiro は Apache Software Foundation のオープン ソース プロジェクトであり、完全なコミュニティ サポートとドキュメントが提供されています。
サポート。Katasoft のような営利企業も、必要に応じて専門的なサポートとサービスを提供します。

3.Shiro と SpringSecurity の比較

1. Spring SecurityはSpringをベースに開発されており、Springをベースとしたプロジェクトの場合はSpringと連携する
セキュリティはパーミッションの方が便利ですが、Shiro は開発のために Spring と統合する必要があります。
Spring SecurityはShiroに比べてセキュリティ保守などの機能が充実している; 3.
3. Spring Security コミュニティのリソースは、Shiro よりも比較的豊富です。
4.Shiro は設定と使用が比較的簡単ですが、Spring Security は使い始めるのがより複雑です。
5.Shiro は依存関係が低く、フレームワークやコンテナーを必要とせず、独立して実行できます。
スプリングコンテナ。
6.Shiro は Web だけでなく、あらゆるアプリケーション環境でも動作します。クラスターセッション中のShiro
おそらく最も重要な利点は、セッションがコンテナに依存しないことです。

4.基本機能

1. 基本的な機能点は下図の通りです。
2. 機能紹介
(1) 認証: ID 認証/ログイン。ユーザーが対応する ID を持っているかどうかを確認します。

 

(2) 認可:認証されたユーザが特定の権限を持っているかどうかを確認する認可、つまり権限検証。
ユーザーが特定のロールを持っているかどうかを確認するなど、ユーザーが操作を実行できるかどうかを判断します。または詳細な検証
特定のユーザーが特定のリソースに対する特定の権限を持っているかどうか。
(3) セッションマネージャー: セッション管理、つまりユーザーがログインした後はセッションになります。
すべての情報はセッション内にあり、セッションは通常の JavaSE 環境または Web 環境にすることができます。
(4) 暗号化: データのセキュリティを保護するための暗号化。たとえば、パスワードは平文で保存されるのではなく、暗号化されてデータベースに保存されます。
店;
(5) Web サポート: Web 環境に簡単に統合できる Web サポート。
(6) キャッシュ: たとえば、ユーザーがログインした後、そのユーザー情報とロール/権限を毎回チェックする必要はありません。
これにより効率が向上します。
(7) 同時実行性:Shiro は、マルチスレッド アプリケーションの同時検証、つまり 1 つのスレッド内で別のスレッドを開くことをサポートします。
プロセス。権限を自動的に伝達できます。
(8) テスト: テストのサポートを提供します。
(9) Run As: あるユーザーが別のユーザーになりすまして (許可されている場合) アクセスできるようにします。
(10) Remember Me: Remember me、これは非常に一般的な機能です。つまり、一度ログインすると、次回からログインする必要はありません。
ログイン済み

5.原則

1.城の建築(城の外側から)
外側からShiroを観察する、つまり、アプリケーションの観点からShiroを使用して物事を実行する方法を観察する

 

城建築
(1) サブジェクト: アプリケーション コードが直接対話するオブジェクトがサブジェクトです。これは、Shiro の外部 API コアを意味します。
それは主題です。Subject は現在の「ユーザー」を表し、必ずしも特定の人物である必要はありません。
Web クローラー、ロボットなど、アプリケーションが対話するものはすべてサブジェクトです。サブジェクトとのすべての対話
SecurityManager に委任されます。サブジェクトは実際にはファサードであり、SecurityManager は実際の
執行者;
(2) SecurityManager: セキュリティ マネージャー、つまり、セキュリティ関連のすべての操作は SecurityManager で実行されます。
インタラクション。すべてのサブジェクトを管理します。これは、Shiro の中核であり、Shiro の他の部分との対話を担当することがわかります。
コンポーネントは対話します。これは SpringMVC の DispatcherServlet の役割に相当します。
(3) レルム:Shiro はレルムからセキュリティ データ (ユーザー、ロール、権限など) を取得します。
SecurityManager はユーザーを認証したいため、レルムから対応するユーザーを取得して比較する必要があります。
ユーザーの ID が合法かどうかを判断します。また、ユーザーが入力できるかどうかを確認するために、Realm からユーザーの対応するロール/権限を取得する必要があります。
行操作。レルムをデータソースと考えることができます。
2. シロの建築(シロの 内面から見
城建築
(1) サブジェクト: アプリケーションと対話できる任意の「ユーザー」 (2) SecurityManager: SpringMVC と同等
DispatcherServlet; シロの心
ダーティ。すべての特定の対話は SecurityManager を通じて制御されます。SecurityManager はすべてのサブジェクトを管理し、
認証、認可、セッションおよびキャッシュの管理を担当します。
(3) Authenticator: サブジェクト認証を担当します。これは拡張ポイントであり、カスタマイズ可能であり、認証を使用できます。
認証戦略、つまり、どのような状況でユーザー認証が通過するか?
(4) オーソライザー: オーソライザー、つまりアクセス コントローラー。サブジェクトが対応する操作を実行する権限を持っているかどうかを判断するために使用されます。
ユーザーがアクセスできるアプリケーションの機能を制御します。
(5) レルム: セキュア エンティティ データ ソース、つまりセキュア エンティティ データを取得するために使用されるレルムが 1 つ以上存在する可能性があります。
統合されており、JDBC 実装、メモリ実装などがユーザーによって提供されるため、通常はアプリケーションで必要となります。
独自のレルムを実装するには;
(6) SessionManager:Sessionのライフサイクルを管理するコンポーネント、ShiroはWeb上だけで利用できるわけではありません
通常のJavaSE環境でも利用可能
(7) CacheManager: ユーザー、ロール、権限などのキャッシュを管理するキャッシュ コントローラー。
基本的には変更が少なく、キャッシュに置くことでアクセスのパフォーマンスが向上します。
(8) 暗号化: 暗号化モジュール、Shiro は、パスワードの暗号化/復号化のためのいくつかの一般的な暗号化コンポーネントを改善します。
密集。

 

 

おすすめ

転載: blog.csdn.net/weixin_45481821/article/details/132926475