웹 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([$this->target, $method], $arguments); } } }
다음과 같이 사용할 수 있습니다.
$currentUser = ...; $controller = ...; $acl = new AccessControlList($currentUser); $controller = new SecureContainer($controller, $acl); $controller->actionIndex(); // ACL-protected controller methods
사용자 역할 기반 액세스
역할 기반 액세스의 경우 , 다음 사항을 고려하십시오.
소유자 확인 리소스:
예:
$this->acl->isAllowed( $this->target->getPermissions(), // Get object permissions [$getter, $method] // Command );
액세스 시행 제한 사항:
추가 참고사항 MVC:
위 내용은 웹 MVC 애플리케이션에서 액세스 제어 목록(ACL) 및 역할 기반 액세스를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!