From 2f09b63fb572b4adcdb7f2bcc2f34b11aae49118 Mon Sep 17 00:00:00 2001 From: mirakinparis Date: Mon, 9 Oct 2023 19:02:19 +0200 Subject: [PATCH] correctif pour site drupal --- src/Controller/SfyCASLoginController.php | 22 ++++++++++++++-------- src/Controller/SfyCASServiceValidator.php | 9 ++++++--- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/Controller/SfyCASLoginController.php b/src/Controller/SfyCASLoginController.php index d48b660..71f72e3 100755 --- a/src/Controller/SfyCASLoginController.php +++ b/src/Controller/SfyCASLoginController.php @@ -49,28 +49,34 @@ class SfyCASLoginController extends AbstractController print_r($request->query->get('service')); echo '
'; */ + $user = $this->getUser(); $_casSession=$sfyCASSessionRepository->findBy(['user' => $this->getUser()]); if(is_array($_casSession) && count($_casSession) > 0) { $casSession=$_casSession[0]; - $logger->info('SFYCAS Session : ' . $casSession->getTicket()); + $ticket=$casSession->getTicket(); + $logger->info('SFYCAS ticket ' . $casSession->getTicket() . ' found for user : ' . $user); + } else { $logger->info('SFYCAS Session : create new cas session'); $casSession=new SfyCASSession(); + $ticket=$ticketGenerator->getTicket(); + $casSession->setLogin($user->getUsername()); + $casSession->setUser($user); + $casSession->setTicket('ST-' . $ticket); } - $chemin=$request->getBasePath(); //$logger->info('SFYCAS login base url : ' . $request); $service=$request->query->get('service'); - $user=$this->getUser(); + //$user=$this->getUser(); //echo $user->getUsername(); - $ticket=$ticketGenerator->getTicket(); + //$ticket=$ticketGenerator->getTicket(); - $casSession->setLogin($user->getUsername()); - $casSession->setUser($user); - $casSession->setTicket('ST-' . $ticket); + //$casSession->setLogin($user->getUsername()); + //$casSession->setUser($user); + //$casSession->setTicket('ST-' . $ticket); $entityManager = $this->getDoctrine()->getManager(); $entityManager->persist($casSession); $entityManager->flush(); @@ -78,7 +84,7 @@ class SfyCASLoginController extends AbstractController //$response = new RedirectResponse($service. '?ticket=ST-ABFDABFE'); $attributes = parse_url($service); - $params = $attributes['query']; + //$params = $attributes['query']; if(isset($attributes['query'])) { $responseUrl = $service. '&ticket=ST-'.$ticket; } else { diff --git a/src/Controller/SfyCASServiceValidator.php b/src/Controller/SfyCASServiceValidator.php index 9cd1446..7e8b91d 100755 --- a/src/Controller/SfyCASServiceValidator.php +++ b/src/Controller/SfyCASServiceValidator.php @@ -50,12 +50,15 @@ class SfyCASServiceValidator extends AbstractController { public function p3Validate(Request $request, LoggerInterface $logger): Response { $logger->warning('SFYCAS p3 validate '. $request->query->get('ticket')); - $response = $this->forward('App\Controller\SfyCASServiceValidator::validate', ['request' => $request]); - return $response; + //$response = $this->forward('App\Controller\SfyCASServiceValidator::validate', ['request' => $request]); + //return $response; $ticket = $request->query->get('ticket'); + if(substr($ticket, 0, strlen('ST-ST')) === 'ST-ST'){ + $ticket = substr($ticket, 3); + } - $logger->info('SFYCAS validate : looking session for ticket ' . $ticket); + $logger->info('SFYCAS p3 validate : looking CAS session for ticket ' . $ticket); $casSession = $this->getDoctrine()->getRepository(SfyCASSession::class) ->findOneBy(['ticket' => $ticket]);