ZF2 REST API + ACL不会在predispatch中返回操作名称

时间:2014-09-23 08:29:45

标签: php api rest zend-framework2 acl

好吧,我有一个问题,但我认为它不是那么复杂,所以如果有人帮助我会很棒。 1)我有UserController扩展AbstractRestfulController,它工作正常。 2)然后我需要检查访问该控制器操作的权限。如果我使用" checkPermission"每个控制器中的方法都很好用,但我想在preDispatch事件中完成此方法。这里有一些问题: 我喜欢这个: 的 Module.php

public function onBootstrap(MvcEvent $e)
{
    $em = $e->getApplication()->getEventManager();
    $em->attach('dispatch', array($this, 'preDispatch'), +100);
}

我的方法" checkPermission"像这样检查(我认为没什么特别的):

if (!$this->isAllowed($role, $this->routeMatch->getParam('controller'), $this->routeMatch->getParam('action'))) {

所以问题:getParam(' action')返回null(这意味着,在preDispatch事件应用程序中,它不知道它需要执行什么操作)。我怎样才能让它像我想的那样工作?或者主要问题是: getParam(' action')什么时候可以返回值?仅在onDispatch事件中?

1 个答案:

答案 0 :(得分:1)

因为它是一个宁静的api,它永远不会返回动作名称。添加应用ACL到Rest API不是一个好习惯。 使用Rest API身份验证HEADERS而不是ACL refer this link
--SJ