Bonjour à la communauté.

Je suis nouveau sous symfony 5
Je travaille avec la version suivante : Symfony CLI version 5.10.6 (c) 2021-2025 Fabien Potencier (2025-01-02T13:30:55Z - stable)

Mon probleme a débuté des que j'"ai installé la securité sur un site local de commerce. En effet avant je pouvais naviguer de la liste des produits au formulaire de mise a jour ,mais maintenant symfony m'affiche une erreur de header sans que je ne vois où ça correspond dans mon code.(Erreur:"Warning: Header may not contain more than a single header, new line detected")

Je ne vois pas où est parametré le header de la response dans mon controlleur

J'ai fais bcp de recherches sur les forums mais je ne trouve pas la solution

voici le code du controller

[Route('/update/{id}', name: 'update')]

public function update(Request $request,EntityManagerInterface $em,$id): ?Response
{

$produitrepository = $em->getRepository(Produit::class);
$produit = $produitrepository->find($id);
$img = $produit->getLienImage();
$formProduit = $this->createForm(ProduiType::class,$produit);
$formProduit->add('Mise-a-jour',SubmitType::class,array('label'=>'mise a jour dun produit'));

$formProduit->handleRequest($request);

if($request->isMethod('post') && $formProduit->isValid())
{

           $file = $formProduit['lienimage']->getData();

           if(!is_string($file))
        {

            $filename = $file->getClientOriginalName();
            $file->move($this->getParameter('images_directory'),$filename);

            $produit->setLienImage($filename);

           }else{

            $produit->setLienImage($img);
            /*
            $session= $request->getSession();
            $session->getFlashBag()->add('message','vous devez choisir une image pour le produit');
            $session->set('statut','danger');
            */
            return $this->redirect($this->generateUrl('insert'));

           }
           $em->persist($produit);
           $em->flush();
           /*
           $session = $request->getSession();
           $session->getFlashBag()->add('message','Le produit a été MAJ');
            $session->set('statut','success');
            */
           return $this->redirect($this->generateUrl('liste'));

}
return $this->render('create.html.twig',array('my_form'=>$formProduit->createView()));

}

voici le code du customauthenticator
class CustomAuthenticator extends AbstractLoginFormAuthenticator
{
use TargetPathTrait;

public const LOGIN_ROUTE = 'app_login';
private UrlGeneratorInterface $urlGenerat;
public function __construct(private UrlGeneratorInterface $urlGenerator)

{
$this->urlGenerat=$urlGenerator;
}
public function authenticate(Request $request): Passport
{
$username = $request->getPayload()->getString('username');

    $request->getSession()->set(SecurityRequestAttributes::LAST_USERNAME, $username);

    return new Passport(
        new UserBadge($username),
        new PasswordCredentials($request->getPayload()->getString('password')),
        [
            new CsrfTokenBadge('authenticate', $request->getPayload()->getString('_csrf_token')),
            new RememberMeBadge(),
        ]
    );
}

public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $firewallName): RedirectResponse
{
    if ($targetPath = $this->getTargetPath($request->getSession(), $firewallName)) {
        return new RedirectResponse($targetPath);
    }

    // For example:
    return new RedirectResponse($this->urlGenerat->generate('liste'));
    //throw new \Exception('TODO: provide a valid redirect inside '.__FILE__);
}

protected function getLoginUrl(Request $request): string
{
    return $this->urlGenerat->generate(self::LOGIN_ROUTE);
}

}

Et donc voici le log

INFO 21:42:38 request Matched route "update".

{
"route": "update",
"route_parameters": {
"_route": "update",
"_controller": "App\Controller\AdminController::update",
"id": "22"
},
"request_uri": "https://127.0.0.1:8000/admin/update/22",
"method": "GET"
}

DEBUG 21:42:38 security Checking for authenticator support.

{
"firewall_name": "main",
"authenticators": 2
}

DEBUG 21:42:38 security Checking support on authenticator.

{
"firewall_name": "main",
"authenticator": "Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticator"
}

DEBUG 21:42:38 security Authenticator does not support the request.

{
"firewall_name": "main",
"authenticator": "Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticator"
}

DEBUG 21:42:38 security Checking support on authenticator.

{
"firewall_name": "main",
"authenticator": "Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticator"
}

DEBUG 21:42:38 security Remember-me cookie detected.
DEBUG 21:42:38 security Read existing security token from the session.

{
"key": "_security_main",
"token_class": "Symfony\Component\Security\Http\Authenticator\Token\PostAuthenticationToken"
}

INFO 21:42:38 doctrine Connecting with parameters {params}

{
"params": {
"use_savepoints": true,
"driver": "pdo_mysql",
"idle_connection_ttl": 600,
"host": "127.0.0.1",
"port": 3306,
"user": "root",
"password": null,
"driverOptions": [],
"defaultTableOptions": {
"collation": "utf8mb4_unicode_ci"
},
"dbname": "monapplisymf",
"charset": "utf8mb4"
}
}

DEBUG 21:42:38 doctrine Executing statement: SELECT t0.id AS id_1, t0.username AS username_2, t0.roles AS roles_3, t0.password AS password_4 FROM user t0 WHERE t0.id = ? (parameters: {params}, types: {types})

{
"sql": "SELECT t0.id AS id_1, t0.username AS username_2, t0.roles AS roles_3, t0.password AS password_4 FROM user t0 WHERE t0.id = ?",
"params": {
"1": 8
},
"types": {
"1": 1
}
}

DEBUG 21:42:38 security User was reloaded from a user provider.

{
"provider": "Symfony\Bridge\Doctrine\Security\User\EntityUserProvider",
"username": "domieric"
}

DEBUG 21:42:38 security Skipping the "Symfony\Component\Security\Http\Authenticator\RememberMeAuthenticator" authenticator as it did not support the request.

{
"authenticator": "Symfony\Component\Security\Http\Authenticator\RememberMeAuthenticator"
}

DEBUG 21:42:38 event Notified event "debug.security.authorization.vote" to listener "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote".

{
"event": "debug.security.authorization.vote",
"listener": "Symfony\Bundle\SecurityBundle\EventListener\VoteListener::onVoterVote"
}

DEBUG 21:42:38 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".

{
"event": "kernel.request",
"listener": "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure"
}

je fais appel a vous en desespoir de cause
Merci d'avance pour vos propositions, je suis tout ouie.

Aucune réponse