zend framework - zfc-rbac identity_provider issue



我不知道zfcrbac有什么问题。

我想我可能在配置中遗漏了一些东西,但我已经阅读了几次文档,没有任何线索。

当我尝试使用这个时,我得到

"参数1传递给ZfcRbacServiceRoleService::__construct()必须是ZfcRbacIdentityIdentityProviderInterface的实例,ZendAuthenticationAuthenticationService给出的实例"

我有

'identity_provider' => 'AuthService',

其中AuthService是ZendAuthenticationAuthenticationService的别名

我把它配置成这样

'factories' => array(
            'AuthModelAuthStorage' => function($sm){
                return new AuthModelAuthStorage('auth_user');  
            },
            'AuthService' => function($sm) {
                $dbAdapter      = $sm->get('ZendDbAdapterAdapter');
                $dbTableAuthAdapter  = new DbTableAuthAdapter($dbAdapter, 'user','username','password', 'md5(concat("' . $staticSalt . '" ,?,passwordSalt)) and active=1');
                $authService = new AuthenticationService();
                $authService->setAdapter($dbTableAuthAdapter);
                $authService->setStorage($sm->get('AuthModelAuthStorage'));

                return $authService;
            },
        ),

我不知道我错过了什么?

如文档所述:https://github.com/ZF-Commons/zfc-rbac/blob/master/config/zfc_rbac.global.php.dist#L28

identity_provider选项的服务名必须返回一个实现ZfcRbacIdentityIdentityProviderInterface的实例。我们提供了一个内置的,它使用AuthenticationService: https://github.com/ZF-Commons/zfc-rbac/blob/master/config/zfc_rbac.global.php.dist#L31

我建议您保持默认值。为了建造ZfcRbacIdentityAuthenticationIdentityProvider, ZfcRbac从工厂提取ZendAuthenticationAuthenticationService。所以你需要做的是将配置中的AuthService替换为'ZendAuthenticationAuthenticationService'。

相关内容

  • 没有找到相关文章

最新更新