粗粒度の URL レベルの権限制御
権限制御は、主に粗粒度の URL レベルの権限制御と詳細な URL レベルの権限制御に分けられます。粒度の高いメソッドレベルの権限制御。 (推奨学習: Web フロントエンド ビデオ チュートリアル )
バックグラウンド システムでの操作は、ボタンをクリックするかメニュー項目をクリックするかに関係なく、サーバー側のシステムにアクセスします。リソースであり、サーバー リソースを識別するのは URL です。サーバーリソースに対するユーザーの操作権限を制御するにはどうすればよいですか?データベースには、
ユーザー テーブルと権限制御テーブルの 2 つのテーブルがあります。ユーザー テーブルのユーザーは、権限制御テーブルの関連する権限に関連付けられます。フィルタは、現在のユーザーが URL アドレスに対応する権限を持っているかどうかを判断するために使用されます。ユーザーの対応する権限リストに現在アクセスしている URL アドレスがない場合は、 、権限が不十分であることを示すメッセージが表示されます。ユーザーの対応する許可リストに URL アドレスが含まれている場合、ユーザーはアクセスを許可されます。
簡単に言うと、URL に基づく粗粒度のアクセス許可制御は、ユーザー、アクセス許可、およびアクセス URL 間の対応関係をデータベースに保存することです。現在のユーザーが URL アドレスにアクセスすると、データベースにクエリが実行されて判断されます。ユーザーの現在のステータス。持っている権限、この URL が含まれているかどうか、含まれている場合はアクセスが許可され、含まれていない場合は、権限が不十分であることを示すメッセージが表示されます。
詳細なメソッド レベルのアクセス許可制御
詳細なメソッド レベルのアクセス許可制御は、大まかなアクセス許可制御よりも詳細です。同様に、バックグラウンド システムでボタンまたはメニュー項目をクリックすると、サーバー側の URL リソースにアクセスすることになります。この URL アドレスには、プレゼンテーション層、ビジネス層、および DAO データ層のメソッドが含まれます。粗粒度のものは、データ テーブル内の現在のユーザーの関連する権限をクエリし、それらを比較してユーザーを解放するかどうかを決定することです。違いは、詳細な権限制御がカスタム アノテーションに基づいて実装されることです。
例: ビジネス レイヤーのメソッドにアノテーション @Permission ("カスタム アクセス許可名") を追加します。このアノテーションには、メソッドへのアクセスに必要なアクセス許可情報が含まれており、データベースにも作成されます。テーブル: ユーザー テーブルと権限テーブル。権限テーブルの権限名は、メソッドに追加したばかりのアノテーションのカスタム名と一致する必要があります。端的に言えば、権限情報は権限テーブルに記述され、その後に追加することによって、メソッドにアノテーションを追加すると、メソッドの権限制御の目的が達成されます。ユーザー テーブルのユーザーに対応する権限テーブルの権限もデータ テーブルに関連付けられます。ユーザーはどのメソッドとリソースにアクセスできますか? 制御されます。注釈と組み合わせたデータテーブルを通じて。
基本的な実装原理は次のとおりです: Spring は applicationContext.xml で設定された Bean に対応するオブジェクトを管理します。ユーザーが URL アドレスにアクセスすると、Spring はアクセスされている実際のオブジェクトのプロキシ オブジェクトを返すことができます。それぞれにアクセスするとき実際のオブジェクトのメソッドを使用すると、プロキシ オブジェクトはデータベースにクエリを実行して、現在のユーザーがアノテーションで定義された権限を持っているかどうかを判断します。これは実際のオブジェクトのプロキシ オブジェクトであるため、この一連の操作を実装し、最終的にかどうかを判断します。ユーザー アクセスを制御する権限が得られた結果。
簡単に言えば、プロキシ オブジェクトとカスタム アノテーションを組み合わせることにより、きめ細かい権限制御が実現されます。ユーザーがターゲット オブジェクトのメソッドにアクセスすると、メソッドに権限アノテーション情報が追加され、プロキシ オブジェクトが作成されますターゲット オブジェクトの場合、実際のオブジェクトにアクセスする前にプロキシ オブジェクトにアクセスし、プロキシ オブジェクトはデータベースにアクセスして権限データをクエリし、ユーザーがアノテーションに記述されている必要な権限を持っているかどうかを判断します。アクセス権がある場合はアクセスが許可され、アクセス権がない場合はアクセスがブロックされ、権限が不足していることを示すメッセージが表示されます。
以上がネットワーク許可制御を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。