feat : Ajout expression de réecriture du subject paramétrable
Some checks reported warnings
Cadoles/hydra-sql/pipeline/head This commit is unstable
Cadoles/hydra-sql/pipeline/pr-develop This commit is unstable

This commit is contained in:
2024-07-24 16:41:22 +02:00
parent 769e7ed59e
commit daa5eaaa63
8 changed files with 447 additions and 356 deletions

View File

@ -5,7 +5,9 @@ namespace App\Controller;
use App\Entity\User;
use App\Hydra\Client;
use App\Hydra\HydraService;
use App\SQLLogin\SQLLoginRequest;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
@ -41,7 +43,7 @@ class MainController extends AbstractController
}
#[Route('/connect/login-accept', name: 'app_login_accept', methods: ['GET'])]
public function loginAccept(Request $request): RedirectResponse
public function loginAccept(Request $request, SQLLoginRequest $sqlLoginRequest): RedirectResponse
{
$user = $this->getUser();
@ -52,8 +54,18 @@ class MainController extends AbstractController
if (!$challenge) {
return new RedirectResponse($this->getParameter('issuer_url'));
}
$subject = $user->getLogin();
$subjectRewriteExpression = $sqlLoginRequest->getSubjectRewriteExpression();
if (null != $subjectRewriteExpression) {
$expressionLanguage = new ExpressionLanguage();
$subject = $expressionLanguage->evaluate($subjectRewriteExpression, $user->getAttributes());
}
$loginAcceptRes = $this->client->acceptLoginRequest($challenge, [
'subject' => $user->getLogin(),
'subject' => $subject,
'remember' => true,
])->toArray();