Sto utilizzando la versione 2.5.0.beta3 e ho personalizzato Discourse tramite le impostazioni di amministrazione, apportando diverse modifiche per disabilitare le funzionalità che non mi servono (badge, messaggi privati, ecc.). Non ho apportato modifiche al codice o alla configurazione grezza, e non ho configurato nemmeno l’SSO.
Non me ne ero accorto, ma dopo aver effettuato il logout e il successivo login, vengo reindirizzato a /notifications?recent=true&limit=5, che visualizza il messaggio “Ops! Questa pagina non esiste o è privata.”
Non sono riuscito a individuare l’impostazione responsabile di questo comportamento: il mio utente ha la “Pagina iniziale predefinita” impostata su “Categorie”. Ho provato con diversi account e tutti mostrano lo stesso comportamento.
Abbiamo appena aggiornato alla versione 2.5.0.beta3 e riscontriamo esattamente lo stesso problema.
Il login reindirizza a notifications?recent=true&limit=5 invece che alla pagina iniziale preferita dall’utente, generando un errore 404.
L’URL corretto per le notifiche di un utente sarebbe /u/nomeutente/notifications?recent=true&limit=5.
Comunque, dovrebbe tenere conto delle preferenze dell’utente. Sembra che il login non stia rilevando l’ID utente (accesso tramite nome utente), ma dopo la pagina 404 l’utente risulta effettivamente loggato.
Non sono a conoscenza di temi o componenti che potrebbero influenzare questo problema. Ho dovuto disabilitare un componente personalizzato che ha causato un errore durante l’aggiornamento da 2.4 a 2.5, ma ciò non è correlato (modifica il layout dei gruppi in una lista).
Cos’è la modalità sicura e come si utilizza?
L’URL del sito non sarà d’aiuto poiché non c’è accesso pubblico.
La modalità sicura sembra non fare alcuna differenza, ma non sono convinto che sia stata attivata seguendo queste istruzioni:
poiché semplicemente aggiungendo /?safe_mode alla fine dell’URL del sito non ha aperto alcuna pagina di opzioni: ha solo ricaricato la pagina di accesso. Anche l’uso di /?safe_mode=no_custom&no_plugins&only_official ha prodotto lo stesso risultato e non sembrava esserci alcuna differenza sul sito.
Sono riuscito ad attivare la modalità sicura (ho semplicemente effettuato l’accesso e le opzioni erano disponibili lì). Le ho lasciate tutte selezionate, ho disconnesso l’account e ho effettuato nuovamente l’accesso.
Dopo aver effettuato l’accesso, sono stato reindirizzato alla pagina /notifications?recent=true&limit=5.
Perché?
Perché non è coerente (a volte viene reindirizzato al posto corretto)?
Nota: questo URI è presente in un cookie della pagina di accesso.
Ci sono stati progressi? Abbiamo lo stesso problema. Succede su un server ma non su un altro server di test con lo stesso carico di plugin e componenti.
Il plugin OAuth2 è stato installato su entrambi, ma ora è disabilitato (da prima dell’aggiornamento). È possibile che il plugin OAuth2 fosse abilitato su quello con il problema durante l’aggiornamento e sia stato disabilitato dopo l’aggiornamento - sto aspettando che l’amministratore di sistema confermi l’ordine in cui ha eseguito le operazioni.
OAuth2 è stato installato durante l’aggiornamento. È stato disabilitato da allora.
Cos’è un’installazione in sottocartella?
Abbiamo semplicemente un’installazione standard. Possediamo una cartella denominata ‘containers’ contenente un file app.yml, e avviamo Discourse eseguendo uno script chiamato launcher (come root).
Ho lo stesso problema dopo l’aggiornamento alla versione 2.5.0.beta3.
Installazione standard self-hosted, utilizzati solo plugin ufficiali.
Google Oauth è configurato.
Posso confermare che questo sta accadendo, o qualcosa di simile, sulla mia installazione di test.
Testing: https://smoke-test.redacted.invalid/
Avvio del test di fumo di Discourse per https://smoke-test.redacted.invalid/
PASSED: vai al sito - 1119ms
PASSED: attendi un pulsante di accesso nell'intestazione - 266ms
PASSED: apri il modale di accesso - 85ms
PASSED: il modale di accesso è aperto - 8ms
RICHIESTA HTTP FALLITA A https://smoke-test.redacted.invalid/notifications?recent=true&limit=5 Stato: 403
LOG PAGINA: Impossibile caricare la risorsa: il server ha risposto con uno stato 403 ()
RICHIESTA HTTP FALLITA A https://smoke-test.redacted.invalid/logs/report_js_error Stato: 429
LOG PAGINA: Impossibile caricare la risorsa: il server ha risposto con uno stato 429 ()
PASSED: inserisci le credenziali e accedi - 363ms
PASSED: accesso effettuato - 1606ms
Controllando l’ispettore, vedo una richiesta a /notifications?recent=true&limit=5 non appena apro il modale di accesso, ma non avviene alcun reindirizzamento.