The SmartWeb Project

11 novembre 2005

Usi e costumi del modulo auth

Il modulo auth consente di risolvere in maniera semplice il problema sia dell'autenticazione che dell'autorizzazione, ma soltanto se si adottano delle modalità di utilizzo proficue.
Purtroppo è possibile comprendere quale sia l'utilizzo proficuo soltanto dopo avere effettuato qualche sperimentazione al riguardo quindi, a vantaggio di coloro che seguiranno, riporto quì alcuni consigli maturati dopo molte discussioni sull'argomento e qualche giorno di litigi col suddetto modulo.

Le domande che ci siamo posti (il dinamico pedi i castagnaru, l'affettuoso melu ed io) sono state:
  • Dove devono essere effettuate le verifiche sulle autorizzazioni?
    Di regola questa operazione viene effettuata al livello più basso possibile, eventualmente consentendo ai livelli superiori una verifica preventiva per evitare perdite di tempo. Di conseguenza la risposta sarebbe "sulle BusinessObjectFactory ma con visibilità anche alle JSP".
    Questo è solo parzialmente vero visto che è opportuno anche consentire nuove riaggregazioni delle classi per risolvere problemi che vertono sugli stessi elementi di business. Ad esempio due sistemi necessitano dell'autenticazione e dell'autorizzazione, in uno solamente gli amministratori devono poter inserire utenti nei gruppi, in un altro anche i gestori, ma solo nel proprio gruppo. Questa flessibilità è raggiungibile soltanto se i controlli vengono fatti a livello di Domain;
  • Come effettuare i controlli sulle autorizzazioni?
    La soluzione migliore in questo caso sarebbe un file di configurazione che associa un ruolo specifico ad un metodo del Domain, che è l'obiettivo posto per la prossima versione del framework (aiutatemi che non ce la faccio), per il momento è necessario scrivere una if all'ingresso del metodo che verifica la mancanza di autorizzazioni e lancia una AuthorizationException.