Skip to content
This repository was archived by the owner on Sep 19, 2022. It is now read-only.

Commit 203c8de

Browse files
author
Dominik František Bučík
authored
Merge pull request #82 from dBucik/fixes
fix: 🐛 Fix possible exceptions
2 parents 7e001ac + 8aa0c16 commit 203c8de

File tree

5 files changed

+221
-117
lines changed

5 files changed

+221
-117
lines changed

ecs.php

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
use PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer;
66
use PhpCsFixer\Fixer\FunctionNotation\FunctionTypehintSpaceFixer;
77
use PhpCsFixer\Fixer\Operator\NotOperatorWithSuccessorSpaceFixer;
8-
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
8+
use Symplify\EasyCodingStandard\Config\ECSConfig;
99
use Symplify\EasyCodingStandard\ValueObject\Option;
1010
use Symplify\EasyCodingStandard\ValueObject\Set\SetList;
1111

12-
return static function (ContainerConfigurator $containerConfigurator): void {
13-
$parameters = $containerConfigurator->parameters();
12+
return static function (ECSConfig $ecsConfig): void {
13+
$parameters = $ecsConfig->parameters();
1414
$parameters->set(Option::PATHS, [
1515
__DIR__ . '/ecs.php',
1616
__DIR__ . '/config-templates',
@@ -23,22 +23,26 @@
2323
$parameters->set(Option::PARALLEL, true);
2424
$parameters->set(Option::SKIP, [NotOperatorWithSuccessorSpaceFixer::class, FunctionTypehintSpaceFixer::class]);
2525

26-
$containerConfigurator->import(SetList::PHP_CS_FIXER);
27-
$containerConfigurator->import(SetList::CLEAN_CODE);
28-
$containerConfigurator->import(SetList::SYMPLIFY);
29-
$containerConfigurator->import(SetList::ARRAY);
30-
$containerConfigurator->import(SetList::COMMON);
31-
$containerConfigurator->import(SetList::COMMENTS);
32-
$containerConfigurator->import(SetList::CONTROL_STRUCTURES);
33-
$containerConfigurator->import(SetList::DOCBLOCK);
34-
$containerConfigurator->import(SetList::NAMESPACES);
35-
$containerConfigurator->import(SetList::PHPUNIT);
36-
$containerConfigurator->import(SetList::SPACES);
37-
$containerConfigurator->import(SetList::STRICT);
38-
$containerConfigurator->import(SetList::SYMFONY);
39-
$containerConfigurator->import(SetList::PSR_12);
26+
$ecsConfig->sets(
27+
[
28+
SetList::PHP_CS_FIXER,
29+
SetList::CLEAN_CODE,
30+
SetList::SYMPLIFY,
31+
SetList::ARRAY,
32+
SetList::COMMON,
33+
SetList::COMMENTS,
34+
SetList::CONTROL_STRUCTURES,
35+
SetList::DOCBLOCK,
36+
SetList::NAMESPACES,
37+
SetList::PHPUNIT,
38+
SetList::SPACES,
39+
SetList::STRICT,
40+
SetList::SYMFONY,
41+
SetList::PSR_12,
42+
]
43+
);
4044

41-
$services = $containerConfigurator->services();
45+
$services = $ecsConfig->services();
4246
$services->set(ArraySyntaxFixer::class)
4347
->call('configure', [[
4448
'syntax' => 'short',

lib/Auth/Process/Statistics.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,17 @@
55
namespace SimpleSAML\Module\proxystatistics\Auth\Process;
66

77
use DateTime;
8+
use Exception;
89
use SimpleSAML\Auth\ProcessingFilter;
10+
use SimpleSAML\Logger;
911
use SimpleSAML\Module\proxystatistics\DatabaseCommand;
1012

1113
class Statistics extends ProcessingFilter
1214
{
15+
private const STAGE = 'proxystatistics:Statistics';
16+
17+
private const DEBUG_PREFIX = self::STAGE . ' - ';
18+
1319
public function __construct($config, $reserved)
1420
{
1521
parent::__construct($config, $reserved);
@@ -19,6 +25,12 @@ public function process(&$request)
1925
{
2026
$dateTime = new DateTime();
2127
$dbCmd = new DatabaseCommand();
22-
$dbCmd->insertLogin($request, $dateTime);
28+
try {
29+
$dbCmd->insertLogin($request, $dateTime);
30+
} catch (Exception $ex) {
31+
Logger::error(
32+
self::DEBUG_PREFIX . 'Caught exception while inserting login into statistics: ' . $ex->getMessage()
33+
);
34+
}
2335
}
2436
}

lib/Config.php

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ class Config
2020

2121
public const MODE_PROXY = 'PROXY';
2222

23+
private const KNOWN_MODES = ['PROXY', 'IDP', 'SP', 'MULTI_IDP'];
24+
2325
private const STORE = 'store';
2426

2527
private const MODE = 'mode';
@@ -40,22 +42,33 @@ class Config
4042

4143
private $sourceIdpEntityIdAttribute;
4244

45+
private $tables;
46+
47+
private $keepPerUser;
48+
49+
private $requiredAuthSource;
50+
51+
private $idAttribute;
52+
4353
private static $instance;
4454

4555
private function __construct()
4656
{
4757
$this->config = Configuration::getConfig(self::CONFIG_FILE_NAME);
4858
$this->store = $this->config->getConfigItem(self::STORE, null);
4959
$this->tables = $this->config->getArray('tables', []);
50-
$this->mode = $this->config->getValueValidate(self::MODE, ['PROXY', 'IDP', 'SP', 'MULTI_IDP'], 'PROXY');
5160
$this->sourceIdpEntityIdAttribute = $this->config->getString(self::SOURCE_IDP_ENTITY_ID_ATTRIBUTE, '');
61+
$this->mode = $this->config->getValueValidate(self::MODE, self::KNOWN_MODES, self::MODE_PROXY);
62+
$this->keepPerUser = $this->config->getIntegerRange(self::KEEP_PER_USER, 31, 1827, 31);
63+
$this->requiredAuthSource = $this->config->getString(self::REQUIRE_AUTH_SOURCE, '');
64+
$this->idAttribute = $this->config->getString(self::USER_ID_ATTRIBUTE, 'uid');
5265
}
5366

5467
private function __clone()
5568
{
5669
}
5770

58-
public static function getInstance()
71+
public static function getInstance(): self
5972
{
6073
if (null === self::$instance) {
6174
self::$instance = new self();
@@ -81,17 +94,19 @@ public function getStore()
8194

8295
public function getIdAttribute()
8396
{
84-
return $this->config->getString(self::USER_ID_ATTRIBUTE, 'uid');
97+
return $this->idAttribute;
8598
}
8699

87100
public function getSourceIdpEntityIdAttribute()
88101
{
89102
return $this->sourceIdpEntityIdAttribute;
90103
}
91104

92-
public function getSideInfo($side)
105+
public function getSideInfo(string $side)
93106
{
94-
assert(in_array($side, [self::SIDES], true));
107+
if (!in_array($side, self::SIDES, true)) {
108+
throw new \Exception('Unrecognized side parameter value passed \'' . $side . '\'.');
109+
}
95110

96111
return array_merge([
97112
'name' => '',
@@ -101,11 +116,11 @@ public function getSideInfo($side)
101116

102117
public function getRequiredAuthSource()
103118
{
104-
return $this->config->getString(self::REQUIRE_AUTH_SOURCE, '');
119+
return$this->requiredAuthSource;
105120
}
106121

107122
public function getKeepPerUser()
108123
{
109-
return $this->config->getIntegerRange(self::KEEP_PER_USER, 31, 1827, 31);
124+
return $this->keepPerUser;
110125
}
111126
}

0 commit comments

Comments
 (0)