This repository was archived by the owner on Sep 19, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathLoginInfo.php
More file actions
68 lines (49 loc) · 2.05 KB
/
LoginInfo.php
File metadata and controls
68 lines (49 loc) · 2.05 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
<?php
declare(strict_types=1);
namespace SimpleSAML\Module\perun\Auth\Process;
use SimpleSAML\Auth\ProcessingFilter;
use SimpleSAML\Configuration;
use SimpleSAML\Logger;
class LoginInfo extends ProcessingFilter
{
public const ATTRS = 'attrs';
public const SOURCE_IDP_ATTR = 'sourceIdPAttr';
public const SOURCE_IDENTIFIER_ATTR = 'sourceIdentifierAttr';
private $attrs;
private $sourceIdpAttr;
private $sourceIdentifierAttr;
public function __construct($config, $reserved)
{
parent::__construct($config, $reserved);
$config = Configuration::loadFromArray($config);
$this->attrs = $config->getArray(self::ATTRS);
$this->sourceIdpAttr = $config->getString(self::SOURCE_IDP_ATTR, '');
$this->sourceIdentifierAttr = $config->getString(self::SOURCE_IDENTIFIER_ATTR, '');
}
public function process(&$request)
{
$spEntityId = $request['SPMetadata']['entityid'];
$finalString = 'User ';
if (isset($request['perun']['user'])) {
$user = $request['perun']['user'];
$finalString .= 'ID: ' . $user->getId() . ', ';
}
if (!empty($this->attrs)) {
$finalString .= 'identifiers: [';
foreach ($this->attrs as $attr) {
if (isset($request['Attributes'][$attr][0])) {
$finalString .= $attr . ': ' . $request['Attributes'][$attr][0] . ', ';
}
}
$finalString = substr($finalString, 0, -2) . '], ';
}
$finalString .= 'service: ' . $spEntityId;
if (!empty($this->sourceIdentifierAttr) && isset($request['Attributes'][$this->sourceIdentifierAttr][0])) {
$finalString .= ', external identity: ' . $request['Attributes'][$this->sourceIdentifierAttr][0];
if (!empty($this->sourceIdpAttr) && isset($request['Attributes'][$this->sourceIdpAttr][0])) {
$finalString .= ' from ' . $request['Attributes'][$this->sourceIdpAttr][0];
}
}
Logger::notice($finalString);
}
}