0

これは私の最後の質問の続きです。

やあ、

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

ここで完全なスタックトレースを確認できます。

トレースの最後から2番目の行は、 :をロードしていることを示しています。 DaoAuthenticationProvider

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

しかし、私の構成はどれもそのプロバイダー、またはそれを拡張するものを参照していません。私のカスタムプロバイダーは、を直接実装しAuthenticationProviderInterfaceます。

したがって、構成が間違っていると思います。どこかで明示的に設定する必要がありますが、どこにあるのかWordnikProviderわかりません。研究はこの問題の手がかりを提供していません。

どんな助けでも大歓迎です!

ファイル

4

2 に答える 2

1

行は$this->authenticationManager-> authenticate(new WordnikUserToken($ username、$ password、$ this-> ProviderKey));を返します。WordnikListenerでSymfony\Component \ Security \ Core \ Authentication \ AuthenticationProviderManager(classes.php)に移動して認証します。$ this->プロバイダーは、DaoAuthentificationProvider、WordnikProvider、およびAnonymousAuthentificationProviderです。DaoAuthentificationProviderからは、supports($ token)メソッドのみを使用します。return$ token instanceof UsernamePasswordToken && $ this-> ProviderKey === $ token-> getProviderKey();

これはfalseを返すため、次の行はWordnikProviderです。

Oh..misread:エラーはコンストラクターにあります:parent :: __construct($ userChecker、$ ProviderKey、$ hiddenUserNotFoundExceptions); 失敗するようです。PHP 5.4.10かそこらを実行しているので、エラーは発生しません!!

rm -rfベンダーでcomposerinstallを再度実行するか、別のPHPバージョンを使用してみてください。

于 2013-02-22T04:35:20.703 に答える
0

Aは一週間前にこのようなものを作成しなければなりませんでした。およびで、カスタムユーザープロバイダーを作成しました。ここで、APIを呼び出すだけで、応答を使用してユーザーを作成するかどうかを指定します。

私はこれを読むことをお勧めします:

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

于 2013-02-21T22:20:08.610 に答える