Shiro の統合された認証と認可
Shiro は、Apache でのシンプルで使いやすい Java 権限フレームワークです。単一アプリケーションの場合、Shiro は権限要件を完全かつ迅速に満たすことができるため、一般的にプロジェクトで使用されます。開発者にとって第一の選択肢になります。
ただし、同じ認証と認可を必要とする 2 番目、3 番目、または n 番目のアプリケーションを作成する必要がある場合は、要件を満たすために、Shiro を拡張するか、他のフレームワークを統合する必要がある場合があります。
Shiro が認証と認可を実行する方法
Shiro 自体は認証と認可の達成には役立ちませんが、Shiro は権限に関連するいくつかの概念を非常にうまく定義しているため、特定の実装を完了することができます
認証
Shiro では、認証を完了することは次のとおりです。通常、subject.login(token)。サブジェクトはユーザーを表し、トークンはユーザーが認証を要求するときに送信される認証情報 (プリンシパル、資格情報、送信されたものの検証など) を表します。ログインが成功したら、現在ログインしているユーザーを保存します
Authorization
Shiro では、一般に、ユーザーが保護されたリソースにアクセスするときに、権限制御はこの @RequiresPermissions を渡します。現在の認証サブジェクトのプリンシパルからユーザーの権限を取得し、ユーザーがリソースにアクセスできるかどうかを決定します。Shiro では、アプリケーションが 1 つある場合、アプリケーションの認証は非常に簡単に実行できます。そして認可。
Shiroをベースとした認証・認可の統合
認証・認可の統一を実現するために、ShiroにはCASを統合できるCasFilterが備わっていますが、CASは別のフレームワークであり、比較的重くて別途学習コストがかかるため、ここではは紹介です シンプル、軽量、使いやすい、Shiro ベースの認証および認可サービス hiro-uaa
認証および認可プロセス
ユーザーは保護されたリソースを要求します リソース サーバー
リソース サーバーはユーザーが保護されたリソースを要求するかどうかを決定しますログインしました
ログインしていない場合、リソースサーバーはユーザーを UAA サーバーに誘導してログインします
ユーザーは UAA サーバーにログインします ログインが成功すると、UAA サーバーはコードを返します。ユーザーにアクセスし、以前にアクセスしたリソース サーバーにユーザーを誘導します
リソース サーバー コードを UAA サーバーに送信して、アクセス トークンを取得します。トークンにはユーザー認証情報が含まれています
リソース サーバーは、accessToken が正当であるかどうかを確認します。合法な場合は、以下に示すようにユーザー情報をリソース サーバーに保存します
:自分のログイン
以上がJava 権限フレームワークの紹介:Shiro の統合認証と認可の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。