Completed
Push — master ( 268d58...7f1d79 )
by Boris
13:24
created

AuthorizationServerConfiguration   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 72
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 1
Bugs 1 Features 0
Metric Value
wmc 10
c 1
b 1
f 0
lcom 1
cbo 0
dl 0
loc 72
rs 10

10 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 12 1
A getClientStorage() 0 4 1
A getAccessTokenStorage() 0 4 1
A getRefreshTokenStorage() 0 4 1
A getGrantTypeExtensions() 0 4 1
A alwaysRequireAClient() 0 4 1
A alwaysGenerateARefreshToken() 0 4 1
A getAccessTokenTTL() 0 4 1
A getTokenGenerator() 0 4 1
A getAccessTokenLength() 0 4 1
1
<?php
2
/**
3
 * @author Boris Guéry <[email protected]>
4
 */
5
6
namespace Bgy\OAuth2;
7
8
use Bgy\OAuth2\Storage\ClientStorage;
9
use Bgy\OAuth2\Storage\AccessTokenStorage;
10
use Bgy\OAuth2\Storage\RefreshTokenStorage;
11
12
class AuthorizationServerConfiguration
13
{
14
    private $clientStorage;
15
    private $accessTokenStorage;
16
    private $refreshTokenStorage;
17
    private $tokenGenerator;
18
    private $options = [
19
        'always_require_a_client'  => false,
20
        'access_token_ttl'         => 3600,
21
        'access_token_length'      => 32,
22
    ];
23
24
    private $grantTypes = [];
25
26
    public function __construct(ClientStorage $clientStorage, AccessTokenStorage $accessTokenStorage,
27
                                RefreshTokenStorage $refreshTokenStorage, array $grantTypes,
28
                                TokenGenerator $tokenGenerator,
29
                                array $options = [])
30
    {
31
        $this->clientStorage        = $clientStorage;
32
        $this->accessTokenStorage   = $accessTokenStorage;
33
        $this->refreshTokenStorage  = $refreshTokenStorage;
34
        $this->grantTypes           = $grantTypes;
35
        $this->tokenGenerator       = $tokenGenerator;
36
        $this->options              = array_merge($this->options, $options);
37
    }
38
39
    public function getClientStorage()
40
    {
41
        return $this->clientStorage;
42
    }
43
44
    public function getAccessTokenStorage()
45
    {
46
        return $this->accessTokenStorage;
47
    }
48
49
    public function getRefreshTokenStorage()
50
    {
51
        return $this->refreshTokenStorage;
52
    }
53
54
    public function getGrantTypeExtensions()
55
    {
56
        return $this->grantTypes;
57
    }
58
59
    public function alwaysRequireAClient()
60
    {
61
        return $this->options['always_require_a_client'];
62
    }
63
64
    public function alwaysGenerateARefreshToken()
65
    {
66
        return $this->options['always_generate_a_refresh_token'];
67
    }
68
69
    public function getAccessTokenTTL()
70
    {
71
        return $this->options['access_token_ttl'];
72
    }
73
74
    public function getTokenGenerator()
75
    {
76
        return $this->tokenGenerator;
77
    }
78
79
    public function getAccessTokenLength()
80
    {
81
        return $this->options['access_token_length'];
82
    }
83
}
84