security = $security; $this->urlGenerator = $urlGenerator; $this->requestStack = $requestStack; $this->firewallName = $firewallMap->getFirewallConfig($requestStack->getCurrentRequest())->getName(); } public function onLeagueOauth2ServerEventAuthorizationRequestResolve(AuthorizationRequestResolveEvent $event): void { $request = $this->requestStack->getCurrentRequest(); $user = $this->security->getUser(); $this->saveTargetPath($request->getSession(), $this->firewallName, $request->getUri()); $response = new RedirectResponse($this->urlGenerator->generate('app_login'), 307); if ($user instanceof UserInterface) { //On approuve le consentement automatiquement $event->resolveAuthorization(true); $request->getSession()->remove('consent_granted'); return; //Decommenter et implemeter pour rediriger vers les constentement /*if ($request->getSession()->get('consent_granted') !== null) { $event->resolveAuthorization($request->getSession()->get('consent_granted')); $request->getSession()->remove('consent_granted'); return; } $response = new RedirectResponse($this->urlGenerator->generate('app_consent', $request->query->all()), 307);*/ } $event->setResponse($response); } public static function getSubscribedEvents(): array { return [ 'league.oauth2_server.event.authorization_request_resolve' => 'onLeagueOauth2ServerEventAuthorizationRequestResolve', ]; } }