diff --git a/wp-spid-italia.php b/wp-spid-italia.php index 4fba66c..d6d6bac 100644 --- a/wp-spid-italia.php +++ b/wp-spid-italia.php @@ -207,34 +207,9 @@ function spid_handle() { if ( $internal_debug ) { echo '

'.$e->getMessage().'
'; } else { - echo '

La configurazione SPID ha generato un errore
'; + #echo '

La configurazione SPID ha generato un errore
'; } - if( !function_exists('spid_errors') ) { - function spid_errors( $errorMsg2 ){ - $xmlString = isset($_GET['SAMLResponse']) ? gzinflate(base64_decode($_GET['SAMLResponse'])) : base64_decode($_POST['SAMLResponse']); - $xmlResp = new \DOMDocument(); - $xmlResp->loadXML($xmlString); - if ( $xmlResp->textContent ) { - switch ( $xmlResp->textContent ) { - case stripos( $xmlResp->textContent, 'nr19') !== false: - return 'SPID errore 19 - Ripetuta sottomissione di credenziali errate'; - case stripos( $xmlResp->textContent, 'nr20') !== false: - return 'SPID errore 20 - Utente privo di credenziali compatibili con il livello richiesto dal fornitore del servizio'; - case stripos( $xmlResp->textContent, 'nr21') !== false: - return 'SPID errore 21 - Timeout'; - case stripos( $xmlResp->textContent, 'nr22') !== false: - return 'SPID errore 22 - Utente nega il consenso all\'invio di dati al SP in caso di sessione vigente'; - case stripos( $xmlResp->textContent, 'nr23') !== false: - return 'SPID errore 23 - Credenziali sospese o revocate'; - case stripos( $xmlResp->textContent, 'nr25') !== false: - return 'SPID errore 25 - Processo di autenticazione annullato dall\'utente'; - default: - return 'Si è verificato un errore durante l\'accesso SPID. Contattare l\'amministratore per maggiori informazioni.'; - } - } - } - } add_filter( 'login_errors', 'spid_errors' ); return; } @@ -340,6 +315,30 @@ function spid_errors( $errorMsg2 ){ } } +function spid_errors( $errorMsg2 ){ + $xmlString = isset($_GET['SAMLResponse']) ? gzinflate(base64_decode($_GET['SAMLResponse'])) : base64_decode($_POST['SAMLResponse']); + $xmlResp = new \DOMDocument(); + $xmlResp->loadXML($xmlString); + if ( $xmlResp->textContent ) { + switch ( $xmlResp->textContent ) { + case stripos( $xmlResp->textContent, 'nr19') !== false: + return 'SPID errore 19 - Ripetuta sottomissione di credenziali errate'; + case stripos( $xmlResp->textContent, 'nr20') !== false: + return 'SPID errore 20 - Utente privo di credenziali compatibili con il livello richiesto dal fornitore del servizio'; + case stripos( $xmlResp->textContent, 'nr21') !== false: + return 'SPID errore 21 - Timeout'; + case stripos( $xmlResp->textContent, 'nr22') !== false: + return 'SPID errore 22 - Utente nega il consenso all\'invio di dati al SP in caso di sessione vigente'; + case stripos( $xmlResp->textContent, 'nr23') !== false: + return 'SPID errore 23 - Credenziali sospese o revocate'; + case stripos( $xmlResp->textContent, 'nr25') !== false: + return 'SPID errore 25 - Processo di autenticazione annullato dall\'utente'; + default: + return 'Si è verificato un errore durante l\'accesso SPID. Contattare l\'amministratore per maggiori informazioni.'; + } + } +} + function spid_update_user( $user, $attributes ) { $cf = str_replace( 'TINIT-', '', $attributes['fiscalNumber']);