I ‘m working with Symfony 5.1 using the firewall and a guard authenticator;
secured_area: pattern: ^/ stateless: true provider: chain_provider guard: authenticators: - App<pathToAuthenticator> entry_point: App<pathToAuthenticator>
All was working fine with 5.1.
I’ve recently upgrade to Symfony 5.2 and almost all working fine except Unit tests.
When i do a step by step debugging, it’s not stepping into the Authenticator
anymore like it was the case previously (in 5.1).
Any parameter missing in my configuration ? Default parameter have change ?
Advertisement
Answer
Eventually, i ‘ve found the pb, and the solution, in my test do :
self::$_client->request( 'GET', '/items', array(), array(), array('HTTP_Accept' => 'application/json', 'CONTENT_TYPE' => 'application/json'), json_encode($payload) );
And i have a request matcher that filter on JSON request :
class JsonRequestMatcher implements RequestMatcherInterface { public function matches(Request $request) { $format = $request->getPreferredFormat(); return $format === "json"; } }
For a reason i have not determined, when the header send ‘HTTP_Accept’ $format value in the request matcher is “html” and the request is not processed … then it crash futher on.
When i change ‘HTTP_Accept’ to ‘HTTP_ACCEPT’, (yes, just upper case the header !) it works, and the value for $format is the one expected (ie : “json”). Thanks to Cerad for his support and for some commands i just don’t know was existing in Symfony 😉