2013-11-15 10 views
7

Sto utilizzando il nuovo plugin Grails Spring Security Core 2.0 e mi chiedo come posso personalizzare la vista di accesso e il LoginController/LogoutController?Come personalizzare il controller e le viste di accesso/disconnessione di Grails Spring Security Core 2?

Le versioni precedenti del plugin hanno generato questi file ma ora sembra che devo copiarli dal plug-in al mio progetto. È questo l'approccio corretto?

E in tal caso, posso inserire i controller e le viste copiati in un altro pacchetto, quindi quelli originali. IntelliJ sembra detestare avere gli stessi artefatti nello stesso pacchetto.

+0

Questo lavoro ha funzionato? Ho copiato 'LogoutController.groovy' in' controller \ grails \ plugin \ springsecurity \ LogoutController.groovy', ma le modifiche apportate non vengono rilevate. Penso che usi ancora il controller dei plugin. – Guus

risposta

5

Per impostazione predefinita nella versione 2.0 i logout sono consentiti solo tramite richieste POST. Per modificare questo per consentire alle richieste GET, aggiungi quanto segue al tuo file Config.groovy.

grails.plugin.springsecurity.logout.postOnly = false 

Una volta che avete che insieme è possibile collegare direttamente il logout di controllo al fine di effettuare il logout

<g:link controller="logout">logout</g:link> 

Se si vuole trovare più informazioni che altro è stato cambiato nella versione 2 sguardo alla documentazione What's New in Version 2.0

2

Un'altra opzione sarebbe quella di utilizzare un remote link che di default utilizza il metodo "post"

<g:remoteLink class="logout" controller="logout">${message(code: 'springSecurity.logout.link')}</g:remoteLink> 
+0

Non avresti bisogno di impostare l'attributo 'asincrono' su' false' per fare in modo che il link cambi la posizione corrente del browser? –

1

Non credo che nessuna delle risposte precedenti risponda effettivamente alla domanda.

Se si desidera eseguire l'override dei controller e delle visualizzazioni nella propria app Web, sì è possibile copiarli nell'app Web. Puoi anche dare loro una diversa gerarchia di pacchetti, se lo desideri, dato che il plug-in spring-security-core sembra fare riferimento ad essi per URL e il tuo li sostituirà.

Questo funziona perché i controller e le viste dichiarati nell'applicazione Web principale hanno la precedenza su quelli presenti nei plug-in.

Tuttavia, se lo si fa in un altro plug-in, ciò si verifica quando le cose diventano un po 'complicate. See this questiona and answer for a solution to that problem

+0

Grazie per aver aggiunto questa risposta !! –

Problemi correlati