Web MVC アプリケーションへのアクセス コントロール リストの実装
アクセス コントロール リスト (ACL) の実装により、ユーザーが特定のアクションを実行する権限が確実に与えられます。アプリケーション内で。このタスクに対する完全なアプローチは次のとおりです。
ACL の実装
最も効果的な方法には、デコレータ パターンを利用することが含まれます。これには、元のクラスを拡張せずに、保護層として機能する別のオブジェクト内でターゲット オブジェクトをラップすることが含まれます。以下に例を示します。
class SecureContainer { protected $target; protected $acl; public function __construct($target, $acl) { $this->target = $target; $this->acl = $acl; } public function __call($method, $arguments) { if ( method_exists($this->target, $method) && $this->acl->isAllowed(get_class($this->target), $method) ) { return call_user_func_array(array($this->target, $method), $arguments); } } }
利点:
オブジェクトのロールベースのアクセス制御 (RBAC)
オブジェクトに RBAC を実装するには、以下を考慮する必要があります。ドメイン オブジェクトには所有者の詳細が含まれているという事実。 isAllowed メソッドを変更します。
$this->acl->isAllowed($this->target->getPermissions(), $command);
サイドノート
以上がWeb MVC アプリケーションにアクセス制御リスト (ACL) を効果的に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。