for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace SimpleSAML\SAML2\Assertion\Validation\ConstraintValidator;
use DateInterval;
use SimpleSAML\SAML2\Assertion\Validation\AssertionConstraintValidator;
use SimpleSAML\SAML2\Assertion\Validation\Result;
use SimpleSAML\SAML2\Utils;
use SimpleSAML\SAML2\XML\saml\Assertion;
class NotBefore implements AssertionConstraintValidator
{
/**
* @param \SimpleSAML\SAML2\XML\saml\Assertion $assertion
* @param \SimpleSAML\SAML2\Assertion\Validation\Result $result
*/
public function validate(Assertion $assertion, Result $result): void
$notBefore = $assertion->getConditions()?->getNotBefore()?->toDateTime();
$clock = Utils::getContainer()->getClock();
if (($notBefore !== null) && ($notBefore > ($clock->now()->add(new DateInterval('PT60S'))))) {
$result->addError(
'Received an assertion that is valid in the future. Check clock synchronization on IdP and SP.',
);
}