Symfony2 でユーザーを手動でログインしたい。(私はfosuserbundleを使用しています)。/login/auto のようなカスタム ルートで認証がトリガーされます。
/login/auto と一致するコントローラーコードは次のとおりです
public function loginAction(){
        $em = $this->container->get('doctrine')->getManager();
        $users = $em->getRepository('MybundleMainBundle:User');
        $user = $users->findOneByEmail("user@user.com");
        $securityContext = $this->get('security.context');
        $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
        $securityContext->setToken($token);
        $this->get('session')->set('_security_'.'main', serialize($token));
        return new RedirectResponse($this->generateUrl('home')); 
}
しかし、リダイレクト後、/home ではなく /login に自動的にリダイレクトされるため、認証に失敗しました。
ここに私のセキュリティファイルの設定があります:
security:
    providers:
        fos_userbundle:
            id: fos_user.user_provider.username
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512
    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
                always_use_default_target_path: true
            logout:       true
            anonymous:    true
            switch_user: true
            remember_me:
                key:    %secret%
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false
    access_control:
        - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, role: ROLE_USER }
    role_hierarchy:
        ROLE_USER:     ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
ご協力いただきありがとうございます