-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathConfiguration.php
More file actions
91 lines (79 loc) · 2.78 KB
/
Copy pathConfiguration.php
File metadata and controls
91 lines (79 loc) · 2.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
declare(strict_types=1);
namespace Yokai\SecurityTokenBundle\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\NodeDefinition;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
/**
* @author Yann Eugoné <eugone.yann@gmail.com>
*/
final class Configuration implements ConfigurationInterface
{
public function getConfigTreeBuilder(): TreeBuilder
{
$builder = new TreeBuilder('yokai_security_token');
$root = $builder->getRootNode();
$root->addDefaultsIfNotSet();
$root
->children()
->append($this->getTokensNode())
->append($this->getServicesNode())
->end()
;
return $builder;
}
private function getTokensNode(): NodeDefinition
{
$builder = new TreeBuilder('tokens');
$node = $builder->getRootNode();
$node
->useAttributeAsKey('purpose')
->prototype('array')
->children()
->scalarNode('generator')
->defaultValue('yokai_security_token.open_ssl_token_generator')
->end()
->scalarNode('duration')
->defaultValue('+2 days')
->end()
->integerNode('usages')
->defaultValue(1)
->end()
->scalarNode('keep')
->defaultValue('+1 month')
->end()
->booleanNode('unique')
->defaultValue(false)
->end()
->end()
->end()
;
return $node;
}
private function getServicesNode(): NodeDefinition
{
$builder = new TreeBuilder('services');
$node = $builder->getRootNode();
$node->addDefaultsIfNotSet();
$node
->children()
->scalarNode('information_guesser')
->defaultValue('yokai_security_token.default_information_guesser')
->end()
->scalarNode('token_factory')
->defaultValue('yokai_security_token.default_token_factory')
->end()
->scalarNode('token_repository')
->defaultValue('yokai_security_token.default_token_repository')
->end()
->scalarNode('token_manager')
->defaultValue('yokai_security_token.default_token_manager')
->end()
->scalarNode('archivist')
->defaultValue('yokai_security_token.delete_archivist')
->end()
->end()
;
return $node;
}
}