2009-08-28 12 views
15

Quali sono le migliori strategie per proteggere l'app GWT + Tomcat per eseguire l'autenticazione e l'autorizzazione?GWT e autenticazione

risposta

14

Therea sono due strategie di base:

  1. fissare i punti di ingresso;
  2. proteggere i servizi remoti.

Fissare i punti di ingresso

Il modo più semplice è quello di limitare l'accesso ai file js/HTML generato da GWT che utilizzano regolarmente gli strumenti di sicurezza delle applicazioni web:

  • Primavera di sicurezza;
  • vincoli web.xml.

Questo può consentire di avere un es. AdminEntryPoint e UserEntryPoint.

garantire i servizi remoti

Se la soluzione di cui sopra non è sufficiente, si può scavare più a fondo. L'ho fatto con Spring Security. Non ho trovato un modo pulito al 100% di integrare Spring Security con GWT, quindi ho aggiunto un po 'di colla. Brevemente:

  • creato un'annotazione @AllowedRoles che enumera i ruoli utente autorizzati ad accedere a tale metodo di servizio;
  • creato un UserDetailsService che consente l'ispezione dell'utente corrente (vedere the SecurityContextHolder javadoc per i dettagli);
  • creato un aspetto Spring che corrisponde a tutti i metodi annotati con l'annotazione precedente. Usa il servizio per recuperare i ruoli dell'utente corrente e lancia un'eccezione controllata per segnalare un accesso illegale;
  • modificato tutti i metodi di servizio per generare l'eccezione di sicurezza.
+2

Robert, potresti fornire un codice di esempio dell'aspetto menzionato? (è dove ho spinto) –