66using CIE . AspNetCore . Authentication . Saml ;
77using Microsoft . AspNetCore . Authentication ;
88using Microsoft . AspNetCore . Http ;
9+ using Microsoft . AspNetCore . Http . Extensions ;
910using Microsoft . Extensions . Logging ;
1011using Microsoft . Extensions . Options ;
1112using Microsoft . Extensions . Primitives ;
@@ -389,6 +390,18 @@ private string RemoveFiscalNumberPrefix(string fiscalNumber)
389390 var form = await Request . ReadFormAsync ( ) ;
390391
391392 var serializedResponse = Encoding . UTF8 . GetString ( Convert . FromBase64String ( form [ "SAMLResponse" ] [ 0 ] ) ) ;
393+
394+ await _logHandler . LogPostResponse ( new PostResponse ( )
395+ {
396+ SignedMessage = serializedResponse ,
397+ SAMLResponse = form [ "SAMLResponse" ] . FirstOrDefault ( ) ,
398+ RelayState = form [ "RelayState" ] . ToString ( ) ,
399+ ContentType = Request . ContentType ,
400+ Url = Request . GetEncodedUrl ( ) ,
401+ Headers = Request . Headers . ToDictionary ( t => t . Key , t => t . Value ) ,
402+ Cookies = Request . Cookies . ToDictionary ( t => t . Key , t => t . Value )
403+ } ) ;
404+
392405 return (
393406 form [ "RelayState" ] . ToString ( ) ,
394407 SamlHandler . GetAuthnResponse ( form [ "SAMLResponse" ] [ 0 ] ) ,
@@ -400,6 +413,17 @@ private string RemoveFiscalNumberPrefix(string fiscalNumber)
400413 && Request . Query . ContainsKey ( "RelayState" ) )
401414 {
402415 var serializedResponse = DecompressString ( Request . Query [ "SAMLResponse" ] . FirstOrDefault ( ) ) ;
416+
417+ await _logHandler . LogRedirectResponse ( new RedirectResponse ( )
418+ {
419+ SignedMessage = serializedResponse ,
420+ SAMLResponse = Request . Query [ "SAMLResponse" ] . FirstOrDefault ( ) ,
421+ RelayState = Request . Query [ "RelayState" ] . FirstOrDefault ( ) ,
422+ Url = Request . GetEncodedUrl ( ) ,
423+ Headers = Request . Headers . ToDictionary ( t => t . Key , t => t . Value ) ,
424+ Cookies = Request . Cookies . ToDictionary ( t => t . Key , t => t . Value )
425+ } ) ;
426+
403427 return (
404428 Request . Query [ "RelayState" ] . FirstOrDefault ( ) ,
405429 SamlHandler . GetAuthnResponse ( serializedResponse ) ,
@@ -419,9 +443,21 @@ private string RemoveFiscalNumberPrefix(string fiscalNumber)
419443 var form = await Request . ReadFormAsync ( ) ;
420444
421445 var serializedResponse = Encoding . UTF8 . GetString ( Convert . FromBase64String ( form [ "SAMLResponse" ] [ 0 ] ) ) ;
446+
447+ await _logHandler . LogPostResponse ( new PostResponse ( )
448+ {
449+ SignedMessage = serializedResponse ,
450+ SAMLResponse = form [ "SAMLResponse" ] . FirstOrDefault ( ) ,
451+ RelayState = form [ "RelayState" ] . ToString ( ) ,
452+ ContentType = Request . ContentType ,
453+ Url = Request . GetEncodedUrl ( ) ,
454+ Headers = Request . Headers . ToDictionary ( t => t . Key , t => t . Value ) ,
455+ Cookies = Request . Cookies . ToDictionary ( t => t . Key , t => t . Value )
456+ } ) ;
457+
422458 return (
423459 form [ "RelayState" ] . ToString ( ) ,
424- SamlHandler . GetLogoutResponse ( form [ "SAMLResponse" ] [ 0 ] ) ,
460+ SamlHandler . GetLogoutResponse ( serializedResponse ) ,
425461 serializedResponse
426462 ) ;
427463 }
@@ -430,6 +466,17 @@ private string RemoveFiscalNumberPrefix(string fiscalNumber)
430466 && Request . Query . ContainsKey ( "RelayState" ) )
431467 {
432468 var serializedResponse = DecompressString ( Request . Query [ "SAMLResponse" ] . FirstOrDefault ( ) ) ;
469+
470+ await _logHandler . LogRedirectResponse ( new RedirectResponse ( )
471+ {
472+ SignedMessage = serializedResponse ,
473+ SAMLResponse = Request . Query [ "SAMLResponse" ] . FirstOrDefault ( ) ,
474+ RelayState = Request . Query [ "RelayState" ] . FirstOrDefault ( ) ,
475+ Url = Request . GetEncodedUrl ( ) ,
476+ Headers = Request . Headers . ToDictionary ( t => t . Key , t => t . Value ) ,
477+ Cookies = Request . Cookies . ToDictionary ( t => t . Key , t => t . Value )
478+ } ) ;
479+
433480 return (
434481 Request . Query [ "RelayState" ] . FirstOrDefault ( ) ,
435482 SamlHandler . GetLogoutResponse ( serializedResponse ) ,
0 commit comments