@@ -71,8 +71,7 @@ public function insertLogin(&$request, &$date)
71
71
}
72
72
}
73
73
74
- $ idAttribute = $ this ->config ->getIdAttribute ();
75
- $ userId = isset ($ request ['Attributes ' ][$ idAttribute ]) ? $ request ['Attributes ' ][$ idAttribute ][0 ] : '' ;
74
+ $ userId = $ this ->getUserId ($ request );
76
75
77
76
$ ids = [];
78
77
foreach (self ::TABLE_SIDES as $ side => $ table ) {
@@ -273,23 +272,19 @@ private function writeLogin($date, $ids, $user)
273
272
return $ this ->conn ->write ($ query , $ params );
274
273
}
275
274
276
- private function getEntities ($ request )
275
+ private function getEntities ($ request ): array
277
276
{
278
277
$ entities = [
279
278
Config::MODE_IDP => [],
280
279
Config::MODE_SP => [],
281
280
];
282
281
if (Config::MODE_IDP !== $ this ->mode && Config::MODE_MULTI_IDP !== $ this ->mode ) {
283
- $ entities [Config::MODE_IDP ]['id ' ] = $ request[ ' saml:sp:IdP ' ] ;
284
- $ entities [Config::MODE_IDP ]['name ' ] = $ request[ ' Attributes ' ][ ' sourceIdPName ' ][ 0 ] ;
282
+ $ entities [Config::MODE_IDP ]['id ' ] = $ this -> getIdpIdentifier ( $ request) ;
283
+ $ entities [Config::MODE_IDP ]['name ' ] = $ this -> getIdpName ( $ request) ;
285
284
}
286
285
if (Config::MODE_SP !== $ this ->mode ) {
287
- $ entities [Config::MODE_SP ]['id ' ] = $ request ['Destination ' ]['entityid ' ];
288
- if (isset ($ request ['Destination ' ]['UIInfo ' ]['DisplayName ' ]['en ' ])) {
289
- $ entities [Config::MODE_SP ]['name ' ] = $ request ['Destination ' ]['UIInfo ' ]['DisplayName ' ]['en ' ];
290
- } else {
291
- $ entities [Config::MODE_SP ]['name ' ] = $ request ['Destination ' ]['name ' ]['en ' ] ?? '' ;
292
- }
286
+ $ entities [Config::MODE_SP ]['id ' ] = $ this ->getSpIdentifier ($ request );
287
+ $ entities [Config::MODE_SP ]['name ' ] = $ this ->getSpName ($ request );
293
288
}
294
289
295
290
if (Config::MODE_PROXY !== $ this ->mode && Config::MODE_MULTI_IDP !== $ this ->mode ) {
@@ -372,4 +367,41 @@ private function getAggregateGroupBy($ids)
372
367
373
368
return $ this ->escape_cols ($ columns );
374
369
}
370
+
371
+ private function getIdpIdentifier ($ request )
372
+ {
373
+ $ sourceIdpEntityIdAttribute = $ this ->config ->getSourceIdpEntityIdAttribute ();
374
+ if (!empty ($ sourceIdpEntityIdAttribute ) && !empty ($ request ['Attributes ' ][$ sourceIdpEntityIdAttribute ][0 ])) {
375
+ return $ request ['Attributes ' ][$ sourceIdpEntityIdAttribute ][0 ];
376
+ }
377
+
378
+ return $ request ['saml:sp:IdP ' ];
379
+ }
380
+
381
+ private function getUserId ($ request )
382
+ {
383
+ $ idAttribute = $ this ->config ->getIdAttribute ();
384
+
385
+ return isset ($ request ['Attributes ' ][$ idAttribute ]) ? $ request ['Attributes ' ][$ idAttribute ][0 ] : '' ;
386
+ }
387
+
388
+ private function getIdpName ($ request )
389
+ {
390
+ return $ request ['Attributes ' ]['sourceIdPName ' ][0 ];
391
+ }
392
+
393
+ private function getSpIdentifier ($ request )
394
+ {
395
+ return $ request ['Destination ' ]['entityid ' ];
396
+ }
397
+
398
+ private function getSpName ($ request )
399
+ {
400
+ $ displayName = $ request ['Destination ' ]['UIInfo ' ]['DisplayName ' ]['en ' ] ?? '' ;
401
+ if (empty ($ displayName )) {
402
+ $ displayName = $ request ['Destination ' ]['name ' ]['en ' ] ?? '' ;
403
+ }
404
+
405
+ return $ displayName ;
406
+ }
375
407
}
0 commit comments