minor nonce related cleanup
This commit is contained in:
@@ -39,7 +39,7 @@ final readonly class InterceptListener {
|
||||
* nor submitting login credentials; so present the login page now */
|
||||
$this->logger->debug("presenting login page: {$event->getRequest()->getClientIp()}");
|
||||
$content = $this->twig->render('login.html.twig', [
|
||||
'nonce_value' => $this->makeNonce(),
|
||||
'nonce' => $this->makeNonce(),
|
||||
]);
|
||||
$event->setResponse(new Response($content, Response::HTTP_UNAUTHORIZED,
|
||||
['Content-Type' => 'text/html']
|
||||
|
||||
@@ -98,7 +98,7 @@ final readonly class LoginListener {
|
||||
if ($nonceItem->isHit() && $nonceItem->get()) {
|
||||
/* mark nonce as spent */
|
||||
$nonceItem->set(false); /* invalid */
|
||||
$nonceItem->expiresAfter(60); /* keep for 1 minute */
|
||||
$nonceItem->expiresAfter(static::NONCE_TTL); /* keep breifly */
|
||||
$this->noncePool->save($nonceItem);
|
||||
|
||||
/* token authentication successful, grant access and set response */
|
||||
@@ -159,7 +159,7 @@ final readonly class LoginListener {
|
||||
if (($nonceItem->isHit() && $nonceItem->get()) || ! $nonceItem->isHit()) {
|
||||
/* mark nonce as spent */
|
||||
$nonceItem->set(false); /* invalid */
|
||||
$nonceItem->expiresAfter(60); /* keep for 1 minute */
|
||||
$nonceItem->expiresAfter(static::NONCE_TTL); /* keep breifly */
|
||||
$this->noncePool->save($nonceItem);
|
||||
|
||||
/* password authentication successful, grant access and set response */
|
||||
@@ -239,19 +239,17 @@ final readonly class LoginListener {
|
||||
$status = Response::HTTP_UNAUTHORIZED;
|
||||
$message = $this->config->errorMessage();
|
||||
}
|
||||
$answer = [
|
||||
'message' => $message,
|
||||
'nonce' => $this->makeNonce(),
|
||||
];
|
||||
|
||||
if ($json) {
|
||||
$contentType = 'application/json';
|
||||
$content = json_encode([
|
||||
'message' => $message,
|
||||
'nonce' => $this->makeNonce(),
|
||||
]);
|
||||
$content = json_encode($answer);
|
||||
} else {
|
||||
$contentType = 'text/html';
|
||||
$content = $this->twig->render('login.html.twig', [
|
||||
'error_message' => $message,
|
||||
'nonce_value' => $this->makeNonce(),
|
||||
]);
|
||||
$content = $this->twig->render('login.html.twig', $answer);
|
||||
}
|
||||
|
||||
return new Response($content, $status, ["Content-Type" => $contentType]);
|
||||
|
||||
@@ -13,7 +13,7 @@ use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
trait MakeNonceTrait {
|
||||
/* 15 bytes neatly fits in base64 */
|
||||
private const NONCE_LENGTH = 15;
|
||||
private const NONCE_TTL = 60;
|
||||
private const NONCE_TTL = 120;
|
||||
|
||||
protected readonly CacheItemPoolInterface $noncePool;
|
||||
protected readonly LoggerInterface $logger;
|
||||
|
||||
Reference in New Issue
Block a user