Completed
Push — master ( 0f6cd0...ce5be5 )
by Florent
41:39 queued 33s
created

IssuerChecker::isIssuerAllowed()

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
b 1
f 0
dl 0
loc 1
nc 1
1
<?php
2
3
/*
4
 * The MIT License (MIT)
5
 *
6
 * Copyright (c) 2014-2016 Spomky-Labs
7
 *
8
 * This software may be modified and distributed under the terms
9
 * of the MIT license.  See the LICENSE file for details.
10
 */
11
12
namespace Jose\Checker;
13
14
use Jose\Object\JWTInterface;
15
16
abstract class IssuerChecker implements ClaimCheckerInterface
17
{
18
    /**
19
     * {@inheritdoc}
20
     */
21
    public function checkClaim(JWTInterface $jwt)
22
    {
23
        if (!$jwt->hasClaim('iss')) {
24
            return [];
25
        }
26
27
        $issuer = $jwt->getClaim('iss');
28
        if (!$this->isIssuerAllowed($issuer)) {
29
            throw new \InvalidArgumentException(sprintf('The issuer "%s" is not allowed.', $issuer));
30
        }
31
32
        return ['iss'];
33
    }
34
35
    /**
36
     * @param string $issuer
37
     *
38
     * @return bool
39
     */
40
    abstract protected function isIssuerAllowed($issuer);
41
}
42