correctif pour site drupal

main
mirakinparis 2 years ago
parent e197147327
commit 2f09b63fb5
  1. 22
      src/Controller/SfyCASLoginController.php
  2. 9
      src/Controller/SfyCASServiceValidator.php

@ -49,28 +49,34 @@ class SfyCASLoginController extends AbstractController
print_r($request->query->get('service')); print_r($request->query->get('service'));
echo '<br>'; echo '<br>';
*/ */
$user = $this->getUser();
$_casSession=$sfyCASSessionRepository->findBy(['user' => $this->getUser()]); $_casSession=$sfyCASSessionRepository->findBy(['user' => $this->getUser()]);
if(is_array($_casSession) && count($_casSession) > 0) { if(is_array($_casSession) && count($_casSession) > 0) {
$casSession=$_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 { } else {
$logger->info('SFYCAS Session : create new cas session'); $logger->info('SFYCAS Session : create new cas session');
$casSession=new SfyCASSession(); $casSession=new SfyCASSession();
$ticket=$ticketGenerator->getTicket();
$casSession->setLogin($user->getUsername());
$casSession->setUser($user);
$casSession->setTicket('ST-' . $ticket);
} }
$chemin=$request->getBasePath(); $chemin=$request->getBasePath();
//$logger->info('SFYCAS login base url : ' . $request); //$logger->info('SFYCAS login base url : ' . $request);
$service=$request->query->get('service'); $service=$request->query->get('service');
$user=$this->getUser(); //$user=$this->getUser();
//echo $user->getUsername(); //echo $user->getUsername();
$ticket=$ticketGenerator->getTicket(); //$ticket=$ticketGenerator->getTicket();
$casSession->setLogin($user->getUsername()); //$casSession->setLogin($user->getUsername());
$casSession->setUser($user); //$casSession->setUser($user);
$casSession->setTicket('ST-' . $ticket); //$casSession->setTicket('ST-' . $ticket);
$entityManager = $this->getDoctrine()->getManager(); $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($casSession); $entityManager->persist($casSession);
$entityManager->flush(); $entityManager->flush();
@ -78,7 +84,7 @@ class SfyCASLoginController extends AbstractController
//$response = new RedirectResponse($service. '?ticket=ST-ABFDABFE'); //$response = new RedirectResponse($service. '?ticket=ST-ABFDABFE');
$attributes = parse_url($service); $attributes = parse_url($service);
$params = $attributes['query']; //$params = $attributes['query'];
if(isset($attributes['query'])) { if(isset($attributes['query'])) {
$responseUrl = $service. '&ticket=ST-'.$ticket; $responseUrl = $service. '&ticket=ST-'.$ticket;
} else { } else {

@ -50,12 +50,15 @@ class SfyCASServiceValidator extends AbstractController {
public function p3Validate(Request $request, LoggerInterface $logger): Response public function p3Validate(Request $request, LoggerInterface $logger): Response
{ {
$logger->warning('SFYCAS p3 validate '. $request->query->get('ticket')); $logger->warning('SFYCAS p3 validate '. $request->query->get('ticket'));
$response = $this->forward('App\Controller\SfyCASServiceValidator::validate', ['request' => $request]); //$response = $this->forward('App\Controller\SfyCASServiceValidator::validate', ['request' => $request]);
return $response; //return $response;
$ticket = $request->query->get('ticket'); $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) $casSession = $this->getDoctrine()->getRepository(SfyCASSession::class)
->findOneBy(['ticket' => $ticket]); ->findOneBy(['ticket' => $ticket]);

Loading…
Cancel
Save