Bonjour à tous,

J'ai un problème assez important à régler utilisant les fonctionnalités d'autentification proposées par Symfony2.

Mon formulaire de connexion est un formulaire Extjs avec un bouton submittant les informations de mon formulaire avec AJAX. Ce formulaire est inclus dans un template twig géré par l'action d'un controlleur.

Voici le bout de code permettant le submit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
buttons: [{
    text: 'Se connecter',
    handler: function(){	
    var form = this.up('form').getForm();
	form.submit({
    		clientValidation: true,
    		url: '{{url}}',
    		success: function(form, action) {
			//location.href="{{url2}}"
		}
	});
    }
}]
Voici le controlleur contenant l'action appelant le formulaire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
 <?php
 
namespace UmanTeam\UmanProjectBundle\Controller;
 
use Symfony\Component\HttpFoundation\RedirectResponse;
 
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Security\Core\SecurityContext,
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\HttpFoundation\Response;
 
class IndexController extends Controller
{	
	public function indexAction()
	{       
		return $this->render(
			'UmanTeamUmanProjectBundle:Index:index.html.twig', 
			array(
				'url'  => $this->generateUrl('ajax', array(),true),
				'url2' => $this->generateUrl('projets', array(),true)
			)
		);
    }
}
L'url appelée lors de l'appel AJAX mène vers une action ajaxAction dans un controlleur projetController. J'ai édité mon routing.yml de la facon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
login:
    pattern:  /
    defaults: { _controller: UmanTeamUmanProjectBundle:Index:index }
 
ajax:
    pattern: /Projets/ajax
    defaults: { _controller: UmanTeamUmanProjectBundle:Projet:ajax }
J'utilise comme providers les données d'une table utilisateur et j'ai donc édité mon security.yml de la façon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 
security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext
        UmanTeam\UmanProjectBundle\Entity\Utilisateur: plaintext
    providers:
        in_memory:
            users:
                user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
        umanteam:
          entity: { class: UmanTeam\UmanProjectBundle\Entity\Utilisateur, property: utilisateurLogin }
    frontend:
             pattern: ^/Projet
             provider: umanteam
             form_login:
                 check_path: /Projet/ajax
                 login_path: /
Mon problèmes est que l'autentification ne s'effectue jamais et de ce fait je reviens toujours vers ma page d'accueil. Aurais-je manqué quelque chose?

Merci d'ava,ce