0

私は Symfony2(.0.x) でプロジェクトを開発しており、単純な自動ログイン システムを構築しています。そのために、ファイアウォールで handle() メソッドをトリガーするイベントをリッスンします。唯一の問題は、それを行う方法を見つけることができないということです。(私は FOSFacebookbundle と組み合わせた FOSUserBundle も使用しています)

私を助けてくれる人。(または、私がそれをすべて間違っているかどうか教えてください)

これは私のサービスです:

project.user.auto_login_listener:
        class: Project\UserBundle\Listener\AutoLoginListener
        public: false
        abstract: true
        arguments: [@security.context, @security.authentication.manager, '' , '' , @logger, @event.dispatcher]

この例では、機能しないため、イベント リスナーを削除しました。

<?php

namespace Project\UserBundle\Listener;

use Symfony\Component\EventDispatcher\EventDispatcherInterface; 
use Symfony\Component\HttpKernel\Event\GetResponseEvent; 
use Symfony\Component\HttpKernel\Log\LoggerInterface; 
use Symfony\Component\Security\Core\SecurityContextInterface; 
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface; 
use Symfony\Component\Security\Core\Exception\AuthenticationException; 
use Symfony\Component\Security\Http\SecurityEvents; 
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent; 
use Symfony\Component\Security\Http\Firewall\ListenerInterface;

class AutoLoginListener implements ListenerInterface {
    private $authenticationManager;
    private $dispatcher;
    private $logger;
    private $providerKey;
    private $securityContext;
    private $tokenParam;


    public function __construct(SecurityContextInterface $securityContext, AuthenticationManagerInterface $authenticationManager, $providerKey, $tokenParam, LoggerInterface $logger = null, EventDispatcherInterface $dispatcher = null)
    {
        $this->securityContext = $securityContext;
        $this->authenticationManager = $authenticationManager;
        $this->providerKey = $providerKey;
        $this->tokenParam = $tokenParam;
        $this->logger = $logger;
        $this->dispatcher = $dispatcher;
    }

    public function handle(GetResponseEvent $event)
    {
         die("test");
    }  
}
?>

ありがとう!

4

1 に答える 1

3

新しい認証プロバイダーを作成する必要があります。この料理本のエントリに 従ってください。

于 2012-06-12T18:45:41.143 に答える