ShiroとSpring-Security
1.シロとは?
公式サイト紹介:https://github.com/apache/shiro
- Apache Shiroは、認証、承認、パスワード、およびセッション管理を実行する、強力で使いやすいJavaセキュリティフレームワークです。ShiroのわかりやすいAPIを使用すると、最小のモバイルアプリケーションから最大のWebおよびエンタープライズアプリケーションまで、あらゆるアプリケーションにすばやく簡単にアクセスできます。
2. Spring-Securityとは何ですか?
公式ウェブサイト紹介:https://spring.io/projects/spring-security
- Spring Securityは、強力で高度にカスタマイズ可能な認証およびアクセス制御フレームワークです。これは、Springベースのアプリケーションを保護するための事実上の標準です。
- Spring Securityは、Javaアプリケーションに認証と承認を提供するための専用フレームワークです。すべてのSpringプロジェクトと同様に、Spring Securityの本当の強みは、カスタム要件を満たすように簡単に拡張できることです。
3. shiroの主な機能とコアコンポーネント
3.1主な機能
- 認証:ユーザーが対応するIDを持っているかどうかを確認するためのID認証/ログイン。
- 認可:承認、つまり権限の検証、認証されたユーザーが特定の権限を持っているかどうかの確認、つまり、ユーザーが次のようなことを実行できるかどうかの判断:ユーザーが特定の役割を持っているかどうかの確認。または、ユーザーがリソースに対して特定の権限を持っているかどうかの詳細な検証。
- セッションマネージャー:セッション管理、つまり、セッションはユーザーがログインした後のセッションです。ログアウトする前のすべての情報はセッション内にあります。セッションは通常のJavaSE環境またはWeb環境内にあります。
- 暗号化:データのセキュリティを保護するための暗号化(プレーンテキストストレージではなくデータベースに保存されるパスワード暗号化など)。
3.2コアコンポーネント
- 件名:件名:「現在のユーザー」。ただし、Shiroでは、Subjectの概念は人を指すだけでなく、サードパーティのプロセス、バックグラウンドアカウント(Daemon Account)、またはその他の類似のものにもなります。それは単に「現在ソフトウェアと相互作用している何か」を意味します。
- SecuritryManager:これは典型的なFacadeモデルであるShiroフレームワークの中核であり、ShiroはSecurityManagerを介して内部コンポーネントのインスタンスを管理し、それを介してセキュリティ管理のためのさまざまなサービスを提供します。
- レルム:レルムは、Shiroとアプリケーションセキュリティデータの間の「ブリッジ」または「コネクタ」として機能します。つまり、ユーザーに対して認証(ログイン)と承認(アクセス制御)の検証を実行するとき、Shiroはアプリケーションで構成されたレルムからユーザーとその許可情報を検索します。
- レルムは、SpringMvcのDaoレイヤーと比較できます(彼よりも安全です)。
4.利点と欠点の比較
4.1 shiroの利点
- Shiroのコードは読みやすく、使いやすいです。
- Shiroは非Web環境で使用でき、フレームワークやコンテナーにバインドせず、独立して実行されます。
4.2 shiroの短所
- 承認済みのサードパーティログインには、手動での実装が必要です。
4.3春のセキュリティの利点
- Spring-SecurityはSpringとよりよく統合されており、プロジェクトはSpring-Bootなどによって構築されており、より使いやすくなっています。
- より良い春のコミュニティをサポートしてください。
- OAuth承認をサポートする公式ウェブサイト:https://spring.io/projects/spring-security-oauth;
4.4春のセキュリティの短所
- shiroはより複雑なので、shiroは明確で理解しやすいものではありません。
概要:初心者の友達は、簡単に理解できるshiroから始めることができます。上記は個人的な理解であり、偏差がある可能性があります。エラーがあることを願っています。
以下は、個人が作成したshiroとspring-securityに基づく2つの小さな例です。学習と通信へようこそ。後で、セキュリティとshiroの使用について詳しく説明します。
https://gitee.com/zzzxp/Shiro.git
https://gitee.com/zzzxp/spring-security.git