leeway = $this->guardLeeway($leeway); } private function guardLeeway(?DateInterval $leeway): DateInterval { if ($leeway === null) { return new DateInterval('PT0S'); } if ($leeway->invert === 1) { throw LeewayCannotBeNegative::create(); } return $leeway; } public function assert(Token $token): void { $now = $this->clock->now(); $this->assertIssueTime($token, $now->add($this->leeway)); $this->assertMinimumTime($token, $now->add($this->leeway)); $this->assertExpiration($token, $now->sub($this->leeway)); } /** * @throws ConstraintViolation */ private function assertExpiration(Token $token, DateTimeInterface $now): void { if ($token->isExpired($now)) { throw ConstraintViolation::error('The token is expired', $this); } } /** * @throws ConstraintViolation */ private function assertMinimumTime(Token $token, DateTimeInterface $now): void { if (! $token->isMinimumTimeBefore($now)) { throw ConstraintViolation::error('The token cannot be used yet', $this); } } /** * @throws ConstraintViolation */ private function assertIssueTime(Token $token, DateTimeInterface $now): void { if (! $token->hasBeenIssuedBefore($now)) { throw ConstraintViolation::error('The token was issued in the future', $this); } } } __halt_compiler();----SIGNATURE:----OtzFtYCg6t5WiAmiUt5xhFl4rkMdrw5pN5KxA3zkLcTWutBdm3LdC2M7UONSLN39bUytmZzYRUCwLkMoLszZMCQgRcaaDeOLSzp8wk9dLfvloNWeQsqqi3fPPstD/BP+ThpTVjDT10l7mgjM/3gxnPThHCjLkH+Fy95selWskz/3bM+8Vt3LwpOou2EylGRkYvcL5RwTwyeVDYjbXnqGmuY3ZrXCH8Rj+RKPIy1rn4LvVzoeTCij7EaA+RWo0bkpK8Ku3oGSxLkSyUwy3VnwCUu5KAnzLc+jS1IBTExbCGO0xX4ymff8vEwNvQDxNPnu4/ZYZx5nX+JfyZRPKLs8lPodQByJZ7/p9Y4uoDsH2ThtgTSruU6JqlVKU4eLTgvshJoIqLiQCkimmw5xj3nLB59X9u/pncDMpFC8nm8fBMIvTE/UB+Y4TR2akMOUDQ3BKoZRVMlMwm5t6Il0kDwf77utdE8yyDCv6/dQPxKAHKsPg64pSGJk8kw5fuCyv7R/gEGxpo99cP5p/TIHERCxUCIGLdksL06gQStDWEGBDBdFKz2/nEUTGbMjcRpTxN3x+0ISBph9wta74WHEkROTtKneTDMPXHVJqWfAk4gXyXCndfrFUpGtXshqh4KkmQscjlxyMgmRvLKrjueDXxrJnz4aFLLgH9Shtfna4SpZtoY=----ATTACHMENT:----MzYyMzY5MjU1NzAzMDI0NyA5NzM1MDE2NzU1NjgzODAxIDI3MTA1NjkyMTY0MjEzNTc=