Domanda

Sto cercando di creare una logica di controllo che dipenda dalla pagina GSP corrente per richiamare un'azione, esiste un tag o un metodo di sessione che posso utilizzare per identificare la pagina GSP corrente

Desidero limitare l'accesso a tutti gli GSP tranne singup e login, quindi se un utente apre qualsiasi altro GSP verrà reindirizzato alla pagina di registrazione e sarà anche in grado di accedere alla pagina di accesso.

La logica che sto cercando di implementare è così se current_Page è login.gsp o singup.gsp quindi non fare altro reindirizzare alla registrazione // dove l'utente può navigare alla pagina di accesso senza problemi

E voglio aggiungere questa logica nel layout principale in modo che venga implementata in tutto il dominio dell'applicazione.

Mi chiedo se esiste un modo alternativo per farlo utilizzando RequestmapController o UrlMappings?

Chiunque abbia esperienza in springMVC sarà in grado di aiutare poiché Grails è basato su SpringMVC, che a sua volta è costruito sul framework servlet standard!

Nota:Sto usando il plugin Acegi

Nota:Come può l'applicazione essere SEO-friendly (ad es.indicizzazione di Google) con questo tipo di meccanismo di sicurezza implementato?

È stato utile?

Soluzione

Modificare:Scusa, ho frainteso la tua domanda.Pensavo che stavi cercando un'alternativa a Requestmaps.Questo è il motivo per cui inizialmente avevo suggerito proteggere i controller con annotazioni.

Se desideri utilizzare Requestmaps puoi effettuare le seguenti operazioni:

  1. Crea una nuova Requestmap simile a questa:
    Modello URL = /login/**
    Ruolo = IS_AUTHENTICATED_ANONYMOUSLY

  2. Per limitare l'accesso al resto del sito crea un'altra voce requestmap che corrisponda a tutti gli URL:
    Modello URL = /*/**
    Ruolo = ROLE_USER (potresti usare qualsiasi altro ruolo che preferisci)

IS_AUTHENTICATED_ANONYMOUSLY significa che chiunque può accedere agli URL corrispondenti. La prima regola è più specifica e pertanto dovrebbe sovrascrivere la seconda e più generale regola.

Puoi guardare Plug-in AcegiSecurity: protezione degli URL per maggiori informazioni.

Per quanto riguarda il SEO del sito.I motori di ricerca AFAIK non possono accedere ai siti che necessitano di autenticazione.Ecco perché utilizzano siti come Experts Exchange trucchi astuti per essere indicizzato da Google.

Potresti scegliere di concedere agli utenti anonimi l'accesso in lettura richiedendo un accesso per la scrittura (come fa SO).Ciò consentirebbe al tuo sito di essere indicizzato dai bot dei motori di ricerca.

Spero che aiuti!

Altri suggerimenti

Si consiglia di leggere questo: testo del link

E il tutorial usando Acegi plugin: testo del link

Il secondo è il modo in cui vorrei andare. Esso consente di ruoli e di impostazione "pagine" sicure e gli URL di ruolo. Esso include anche un modo per creare gli utenti e assegnarli ai ruoli.

Per installare il plug-in Acegi Grails, fare un: grails install-plugin acegi

E 'necessario il plugin di sicurezza primavera. Il modo migliore per farlo è non è all'interno del vostro GSP ma utilizzando un filtro su tutte le richieste web. Che ti do il Requestmaps e urlMappings GrailsNewbie menzionato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top