Spring Security reindirizza alla pagina precedente dopo il login riuscito

So che questa domanda è stata fatta prima, tuttavia mi trovo di fronte a un problema particolare qui.

Io uso la sicurezza di spring 3.1.3.

Ho 3 possibili casi di accesso nella mia applicazione web:

  1. Accesso tramite la pagina di accesso: OK.
  2. Accesso tramite una pagina riservata: OK anche.
  3. Accesso tramite una pagina non ristretta: non OK … una pagina “prodotto” è accessibile a tutti e un utente può pubblicare un commento se ha effettuato l’accesso. Quindi un modulo di accesso è contenuto nella stessa pagina per consentire agli utenti di connettersi.

Il problema con il caso 3) è che non riesco a redirect gli utenti alla pagina “prodotto”. Vengono reindirizzati alla home page dopo un login riuscito, non importa quale.

Si noti che con il caso 2) il reindirizzamento alla pagina riservata funziona fuori dalla scatola dopo il login riuscito.

    Ecco la parte rilevante del mio file security.xml:

              

    Sospetto che la “politica di autenticazione per ogni pagina” sia responsabile del problema. Tuttavia, se lo rimuovo non riesco ad accedere più … j_spring_security_check invia un errore 404.


    MODIFICARE:

    Grazie a Ralph, sono riuscito a trovare una soluzione. Quindi ecco la cosa: ho usato la proprietà

      

    che Ralph mi ha mostrato. Dopo che ho avuto un problema con il mio caso 1): durante la registrazione tramite la pagina di accesso, l’utente è rimasto nella stessa pagina (e non reindirizzato alla pagina iniziale, come in passato). Il codice fino a questo stadio era il seguente:

                      

    Questo dovrebbe funzionare, almeno in teoria, ma non lo era. Non so ancora perché, quindi se qualcuno ha una risposta su questo, creerò volentieri un nuovo argomento per permettergli di condividere la sua soluzione.

    Nel frattempo, sono arrivato a una soluzione. Non è la soluzione migliore, ma come ho detto, se qualcuno ha qualcosa di meglio da mostrare, sono tutto orecchie. Quindi questa è la nuova politica di autenticazione per la pagina di accesso:

         

    La soluzione qui è abbastanza ovvia: la pagina di accesso è consentita solo per gli utenti anonimi. Una volta che un utente è connesso, il gestore degli errori lo reindirizza alla pagina iniziale.

    Ho fatto alcuni test e tutto sembra funzionare bene.