在n层体系结构中插入ACL / ACE的最佳位置(和时间)

时间:2012-04-16 09:31:41

标签: php security acl n-tier-architecture event-driven-design

我们需要在可扩展的Web架构中,特别是在事件驱动设计(同步和异步作业)中分离所有流程,我想知道插入ACE的最佳位置(也是最佳时间)。

我的第一个“天真”动作是将它们插入到创建相关对象的相同服务方法中。

这将是:

class AlbumManager
{
    public function createAlbum(Album $album)
    {        
        $this->albumRepository->save($album);

        $this->permissionManager->grantPrivileges($album->getUser(), $album, MaskBuilder::MASK_OWNER);

        $event = new AlbumEvent($album);
        $this->dispatcher->dispatch(AlbumEvents::CREATE, $event);
    }
}

但是,那是对的地方吗?由于其他事件是在事件监听器中处理的,它们同步或异步委托工作(离线队列),为什么不对ACE做同样的事情呢?

通常,在应用程序中,您始终可以识别需要立即执行的操作,以及可以(必须)脱机(队列)完成的操作。

安全的东西在哪里? ; - )

谢谢, 再见。

本杰明。

0 个答案:

没有答案