Bonjour,

Voila je rencontre un petit problème avec mon code.
quand j'essaye de m'edentifier j'ai une erreur ""Authentication request could not be processed due to a system problem.""

Ma tabe utilisateur :

username 
email
password

mon formulaire

<form class="form" method="POST" action="{{ path('login')}}">

                        <div class="card card-login card-hidden">
                            <div class="card-header card-header-primary text-center">
                                <h4 class="card-title">Connectez-vous</h4>

                            </div>
                            <div class="card-body ">

                                <span class="bmd-form-group">
                                <div class="input-group">
                                  <div class="input-group-prepend">
                                    <span class="input-group-text">
                                      <i class="material-icons">face</i>
                                    </span>
                                  </div>
                                  <input type="text" id ="username" name="_username" value="{{last_username}}"class="form-control" placeholder="Identifiant..." required>
                                </div>
                              </span>

                                <span class="bmd-form-group">
                                <div class="input-group">
                                      <div class="input-group-prepend">
                                          <span class="input-group-text">
                                             <i class="material-icons">lock_outline</i>
                                          </span>
                                      </div>
                                         <input type="password" id="password" name="_password" class="form-control" placeholder="Mot de passe..." required>
                                 </div>
                            </span>
                            </div>
                            <div class="card-footer justify-content-center">
                                <button type="submit" class="btn btn-primary btn-link btn-lg">Se connecter</button>
                            </div>
                        </div>
                    </form>

entity\Utilisateur.php

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;

/**
 * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
 */
class Utilisateur implements UserInterface, \Serializable {

    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $email;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $username;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $password;

    public function getId():  ? int {
        return $this->id;
    }

    public function getEmail() :  ? string {
        return $this->email;
    }

    public function setEmail(string $email) : self{
        $this->email = $email;

        return $this;
    }

    public function getUsername():  ? string {
        return $this->username;
    }

    public function setUsername( ? string $username) : self{
        $this->username = $username;

        return $this;
    }

    public function getPassword() :  ? string {
        return $this->password;
    }

    public function setPassword(string $password) : self{
        $this->password = $password;

        return $this;
    }

    public function getSalt() {
        // Les algorithmes bcrypt et argon2i ne nécessites pas de sel .
        // Vous pourriez avoir besoin de cette fonction si vous changez d'algo.
        return null;
    }

    public function getRoles() {
        return ['ROLE_USER'];
    }

    public function eraseCredentials() {}

    public function serialize() {

        return serialize([
            $this->id,
            $this->username,
            $this->email,
            $this->password,
        ]);
    }

    public function unserialize($string) {
        list(
            $this->id,
            $this->username,
            $this->email,
            $this->password
        ) = unserialize($string, ['allowed_classes' => false]);
    }

}

securityController.php

<?php

namespace App\Controller;

#use http\Env\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;

class SecurityController extends AbstractController {
    /**
     * @Route("/login", name="login")
     */
    public function login(Request $request, AuthenticationUtils $utils) {

        $errors = $utils->getLastAuthenticationError();
        $lastUsername = $utils->getLastUsername();
        //$utilisateur = new utilisateur();
        //$form = $this->createForm(RegistrationController::class,$utilisateur) ;
        return $this->render('login/login.html.twig', array(
            'last_username' => $lastUsername,
            'error' => $errors,
        ));

    }

}

Route.yaml

page_login:
    path:         /
    controller:   Symfony\Bundle\FrameworkBundle\Controller\TemplateController::templateAction
    defaults:
        template: 'login/login.html.twig'

a la fin quand j'essaye de valider et de me connecter j'ai l'erreur suivante :
''Authentication request could not be processed due to a system problem.''

2 réponses


Tu pourrais nous faire un screen des logs ? car avec juste cette erreur difficile de deviner :x
Sinon tu peut aussi nous montrer ton fichier de config security.yml

Sinon le problème que je vois est l'incohérence dans ton entité

/**
 * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
 */
class Utilisateur implements UserInterface, \Serializable {

tu a une class Utilisateur mais un UserRepository, il faudrait un UtilisateurRepository, ou renommé ton entité Utilisateur en User

Hello,
Si c'était le repo, il y aurait une erreur 500, la classe UserRepository ne serait pas trouvée.
As-tu créé un Guard? Si oui, fais-en voir le code, ainsi que le security.yaml