Skip to content

Commit

Permalink
add bearer support
Browse files Browse the repository at this point in the history
  • Loading branch information
ylebre committed Nov 16, 2023
1 parent 7de995c commit 513cdae
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions solid/lib/BearerFactoryTrait.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?php

namespace OCA\Solid;

use DateInterval;
use OCP\IDBConnection;
use Pdsinterop\Solid\Auth\Utils\Bearer;
use Pdsinterop\Solid\Auth\Utils\JtiValidator;

trait BearerFactoryTrait
{
////////////////////////////// CLASS PROPERTIES \\\\\\\\\\\\\\\\\\\\\\\\\\\\

private IDBConnection $connection;
private DateInterval $validFor;

//////////////////////////////// PUBLIC API \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

final public function getBearer(): Bearer
{
$interval = $this->getBearerValidFor();

$replayDetector = new JtiReplayDetector($interval, $this->connection);

$jtiValidator = new JtiValidator($replayDetector);

return new Bearer($jtiValidator);
}

final public function getBearerValidFor(): DateInterval
{
static $validFor;

if ($validFor === null) {
$validFor = new DateInterval('PT10M');
}

return $validFor;
}

final public function setJtiStorage(IDBConnection $connection): void
{
$this->connection = $connection;
}

////////////////////////////// UTILITY METHODS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
}

0 comments on commit 513cdae

Please sign in to comment.