2016-07-11 2 views
0

symfonyのドキュメントに従って、私がaccess_managerを投票者に注入しようとすると、奇妙なエラーが発生します。私はそれを使用する前に定義されたアクセスマネージャを、注入しようとしたときにのみセキュリティ投票者 - 500エラー

bootstrap.phpの

$app['security.voters'] = $app->share(function ($app) { 
    return array(
     new UserVoter($app['security.access_manager']), 
     new IncludeRolesVoter($app['security.access_manager']) 
    ); 
}); 

投票

class UserVoter extends Voter 
{ 
    const VIEW = 'v3.user_view'; 
    const EDIT = 'v3.user_edit'; 

    private $decisionManager; 

    public function __construct(AccessDecisionManagerInterface $decisionManager) 
    { 
     $this->decisionManager = $decisionManager; 
    } 

エラー

[Mon Jul 11 13:57:01.179118 2016] [:error] [pid 1201] [client 10.0.2.2:54292] PHP 256. {closure:/****/bootstrap.php:738-743}() /****/vendor/pimple/pimple/lib/Pimple.php:126 

エラーが発生します。

答えて

1

サービスsecurity.access_managerは、security.votersに依存します。無限の依存ループがあります。

security.access_managerは、有権者の意思決定に依存しているため、自分の有権者の中でそれを求めるのは理にかなっていません。