PDA

View Full Version : [tomcat-j2ee] pagine jsp accessibili solo ad alcuni e non altri. Come?


wireless
18-10-2005, 18:23
salve a tutti,
sto sviluppando una semplice applicazione web sotto Tomcat con j2ee per la gestione di una biblioteca, che deve avere diciamo due gruppi di pagine, uno accessibile a tutti e uno accessibile solo al bibliotecario. Ora, esiste un modo elegante di fare ciò?:D
Per il momento è prevista una pagina di login che crea un bean e lo pmette nella session, a seconda del tipo di bean, la jsp ti si apre o meno (c'è un semplice controllo if nella jsp). Dato che sto metodo nn mi sembra ne pulito ne l'ideale se dovessi inserire una terza tipologia di utenti e credo sia un prolbema comune, come viene risolto in genere? si configura qualcosa nell'web.xml? Inoltre uso struts per la gestione del pattern MVc e o visto che i lfile struts-config.xml possiede un attributo role associabile alle azioni...cosi posso bloccare anche le azioni in base al ruolo...ok, ma come funziona la gestione dei ruoli nelle applicazioni web?
Ho visto al volo qualcosa sul concetto di Real in tomcat, ma mi pare relativo più a gruppi di applicazioni che gruppi di pagine...
insomma so' un po' confuso, datemi qualche dritta...

orpheus
18-10-2005, 18:33
Beh puoi usare i Realm di Tomcat come hai anticipato tu...gesticono abbastanza bene la cosa...oppure puoi creare una servlet filter che faccia il controllo dei permessi..c'e' un pdf che spiega la cosa nel thread Tutorial.

3a ipotesi utilizzando Struts puoi estendere la classe RequestPreprocessor che e' la classe invocata da Struts ogni request da parte dell'utente e analizzare il path della richiesta magari dividendo le jsp in due cartelle

/admin/jspPerBibliotecario

/public/jspPerTutti

wireless
18-10-2005, 19:16
uhm, perdonami, c'è una cosa che nn mi torna, sto dando un occhiata a quello che mi hai detto.
I filtri, la classe di struts etc, permettono di filtrare gli url in base alle mie esigenze, nel momento in cui ho una request ( o, poi una response)
Ma se l'utente smaliziato inserisce direttamente un url non ammesso, senza arrivarci da nessuna parte...come si fa?
Forse, nn ho ben chiaro qualcosa sulla request (possibilissimo). Cioè, se l'utente scrive direttamente l'url di esempio
url:8080/operazioneRiservata.jsp
tomcat non gli invia subito la pagina jsp, e quindi questa deve includere un qualche controllo? Oppure se in struts estendo (come, nn ho ancora visto :D) la classe che mi hai suggerito, tomcat, passa sempre la request prima al mio filtro, poi al controllere di struts il quale infine richiama l'azione giusta?
Dammi un altra drittina....:vicini:

orpheus
19-10-2005, 09:34
Perdonami tu..hai perfettamente ragione non ci avevo pensato ( ho fatto una prova per sicurezza), se chiami direttamente una jsp non avendo il pattern .do catturato da Struts non viene neanche tenuto in considerazione.

Pero' gli altri due metodi dovrebbero funzionare se vedi il pdf del Filtro Servlet,ad esempio, questo viene impostato nel web.xml e viene chiamato ogni volta che viene richiesto un URL con il pattern impostato

così se fai un LoginFilter e la leghi al pattern /admin/*...qualunque jsp /admin/jsp verrà prima passata dalla Servlet filtro e poi in caso visualizzata.

wireless
19-10-2005, 18:31
forse la cosa da fare sarebbe una filter che intercetta tutto eppoi a seconda del tipo di utente connesse cambia gira la chiamata...per esempio si potrebbe fare una filter che intercetta tutti le *.jsp...vabbè, appena avrò un po 'di tempo farò delle prove.


[ot] lavori molto in ambiente j2ee? lavori con i frameworks? Quali? da un punto di vista professionale li ritieni essenziali? vabbè, mi toccherà aprire un altro thread... :D

wireless
19-10-2005, 19:22
per chiunque stia seguendo, anche l'approccio con i realm di tomcat mi piace, lo sto guardando. Una guidina qui:
http://tomcat.apache.org/tomcat-5.0-doc/realm-howto.html
e qui più pratica e veloce(Anche se per tomcat 4...)
http://www.onjava.com/pub/a/onjava/2001/07/24/tomcat.html?page=1

orpheus
20-10-2005, 12:01
Nella mia ancor breve esperienza lavorativa ho avuto modo di utilizzare solo Struts..però devo dire che in un'applicazione web medio-grande sia fondamentale l'uso di un framework sia per la velocità di sviluppo delle funzionalità sia per la manutenibilità e gestione del codice.