Skip to content

Commit 07d2398

Browse files
author
Henrik Bjornskov
committedSep 15, 2015
Add time_to_live option to UsernamePasswordAuthenticator
1 parent 1ca2278 commit 07d2398

File tree

5 files changed

+47
-2
lines changed

5 files changed

+47
-2
lines changed
 

‎DependencyInjection/AntennaExtension.php

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class AntennaExtension extends \Symfony\Component\HttpKernel\DependencyInjection
1111
protected function loadInternal(array $mergedConfig, ContainerBuilder $container)
1212
{
1313
$container->setParameter('antenna.shared_secret', $mergedConfig['secret']);
14+
$container->setParameter('antenna.time_to_live', $mergedConfig['time_to_live']);
1415

1516
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
1617
$loader->load('services.xml');

‎DependencyInjection/Configuration.php

+3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ public function getConfigTreeBuilder()
1818
->isRequired()
1919
->cannotBeEmpty()
2020
->end()
21+
->scalarNode('time_to_live')
22+
->defaultValue('7 days')
23+
->end()
2124
->end()
2225
;
2326

‎Resources/config/services.xml

+3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
<argument type="service" id="security.user_checker" />
1212
<argument type="service" id="security.password_encoder" />
1313
<argument type="service" id="antenna.coder" />
14+
<argument type="collection">
15+
<argument key="time_to_live">%antenna.time_to_live%</argument>
16+
</argument>
1417
</service>
1518

1619
<service id="antenna.token_authenticator" class="Antenna\Security\TokenAuthenticator">
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
3+
namespace Flint\Bundle\AntennaBundle\Tests\DependencyInjection;
4+
5+
use Flint\Bundle\AntennaBundle\DependencyInjection\Configuration;
6+
use Matthias\SymfonyConfigTest\PhpUnit\AbstractConfigurationTestCase;
7+
8+
class ConfigurationTest extends AbstractConfigurationTestCase
9+
{
10+
protected function getConfiguration()
11+
{
12+
return new Configuration();
13+
}
14+
15+
public function testSecretIsRequired()
16+
{
17+
$this->assertConfigurationIsInvalid([], 'The child node "secret" at path "antenna" must be configured.');
18+
}
19+
20+
/**
21+
* @dataProvider configurationSets
22+
*/
23+
public function testConfiguration($config, $expectedConfig)
24+
{
25+
$mergedConfigs = [$config];
26+
27+
$this->assertProcessedConfigurationEquals($mergedConfigs, $expectedConfig);
28+
}
29+
30+
public function configurationSets()
31+
{
32+
return [
33+
[['secret' => 'my_secret'], ['secret' => 'my_secret', 'time_to_live' => '7 days']],
34+
[['secret' => 'my_secret', 'time_to_live' => '10 days'], ['secret' => 'my_secret', 'time_to_live' => '10 days']],
35+
];
36+
}
37+
}

‎composer.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@
99
},
1010

1111
"require" : {
12-
"flint/antenna" : "~1.0",
12+
"flint/antenna" : "~1.2",
1313
"symfony/security-bundle" : "~2.7",
1414
"symfony/framework-bundle" : "~2.7"
1515
},
1616

1717
"require-dev" : {
18-
"symfony/finder" : "~2.7"
18+
"symfony/finder" : "~2.7",
19+
"matthiasnoback/symfony-config-test" : "~1.2"
1920
}
2021
}

0 commit comments

Comments
 (0)
Please sign in to comment.