Symfony2的将不会加载自定义的身份验证提供者,负载需要把DaoAuthenticationPr

2019-07-20 07:32发布

这是一个延续我的最后一个问题 。

嗨,

为了对抗Wordnik REST API认证我执行,在Symfony2中的应用程序,自定义的身份验证提供者。

在应用负载,不管是什么请求路径,这是我得到的异常:

( ! ) Fatal error: Cannot access parent:: when current class scope has no parent in /[..]/WordRot/vendor/symfony/symfony/src/Symfony/Component/Security/Core/Authentication/Provider/UserAuthenticationProvider.php on line 43

你可以看到完整的堆栈跟踪这里 。

二要在跟踪中最后一行显示, 它加载的 DaoAuthenticationProvider

18 0.0217 1922792 Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider->__construct( ) ../appDevDebugProjectContainer.php:3071

但没有我的配置是指供应商,或任何其扩展。 我的自定义提供直接实现AuthenticationProviderInterface

所以,我认为我的配置是错误的,我什么地方需要显式设置WordnikProvider ,但我不知道在哪里! 研究并没有提供任何线索这个问题。

任何帮助将非常感激!

  • /app/config/config.yml
  • /app/config/security.yml
  • /src/WordRot/PlayBundle/Security/Authentication/Provider/WordnikProvider.php
  • /src/WordRot/PlayBundle/Security/Authentication/Token/WordnikUserToken.php
  • /src/WordRot/PlayBundle/Security/Firewall/WordnikListener.php
  • /src/WordRot/PlayBundle/DependencyInjection/Security/Factory/WordnikFactory.php

Answer 1:

行返回$这个 - > authenticationManager->认证(新WordnikUserToken($的用户名,密码$,$这个 - > providerKey)); 在WordnikListener去的Symfony \分量\安全\核心\认证\ AuthenticationProviderManager(classes.php)进行身份验证。 $这个 - >提供商DaoAuthentificationProvider,WordnikProvider和AnonymousAuthentificationProvider。 从DaoAuthentificationProvider它仅使用此方法支持($令牌):返回$令牌的instanceof UsernamePasswordToken && $这个 - > providerKey === $令牌的> getProviderKey();

返回false,所以接下来是WordnikProvider。

Oh..misread:错误是在构造函数中:父:: __构造($ userChecker,$ providerKey,$ hideUserNotFoundExceptions); 似乎失败。 运行PHP 5.4.10还是让我没有错误!

无论室射频供应商和运行作曲家重新安装或尝试使用不同的PHP版本!



Answer 2:

A的一个星期前创造这样的事情。 在和,我创建了一个自定义用户提供,在这里我简单地调用API,并与响应我创建的用户与否。

我建议阅读本:

http://symfony.com/doc/2.0/cookbook/security/custom_provider.html



文章来源: Symfony2 won't load custom authentication provider, loads DaoAuthenticationProvider