miklos ha scritto:premesso che nn so bene cosa tu stia sviluppando
Diciamo che per questo esame bisogna sviluppare una applicazione in Java, con una interfaccia in JSP che giri su Tomcat, attraverso l'uso di:
Eclipse for Java EE Web Developers IDE
JDK 6 SE
Apache Tomcat
MySQL, che permetta ad un docente di censire risorse e ai beneficiari di prenotare materiali.
e perchè, permettimi di dirti che la tua soluzione è ottima per esercitarti con java..
Considera che nè Java nè SQL nè HTML li abbiamo affrontati nel corso.
Abbiamo parlato solo di UML. Il resto lo ha chiesto il professore. Quindi, l'apprendimento del linguaggio è piuttosto "alla volemose bene" (avessi più tempo mi sarei messo per bene a studiarlo, ma purtroppo il tempo è quello che è. Già è molto che sia riuscito a mettere su qualcosa di funzionante in una settimana.)

1) esponi l'username dell'utente loggato
Vero. Ma solo DOPO che uno si è loggato.
Altrimenti, non compare nulla. Nemmeno sulla barra di stato.
Questo di per sè non lo vedo come un problema. Dopotutto, se uno ha fatto il login attraverso il form, lo conoscerà il suo username, no? :P
2) se non utilizzi il concetto di sessione legata all'utente loggato dovresti reiterare il punto dolente nr1 in tutte le pagine in cui ti serve l'info sull'utente
Su questo, non posso darti torto
Infatti, ad ogni pagina richiamo lo user...altrimenti è finita.
3) usare parametri passati tramite url per fare query su database sql, se non correttamente validati sono passibili facilmente di sql injection(ma immagino che abbia usato i prepared statement e non semplici sostituzioni di stringhe in una query preformata). quindi questa tecnica è da usare in casi in cui è impossibile fare altrimenti
I metodi per la connessione al database non li ho scritti io

Ce li ha dati direttamente il professore. Comunque si, usa delle prepared statement.
4) come lo gestisci il il fatto che se scrivo direttamente la url beneficiario_loggato.jsp?user=ciccio senza aver fatto login, ma direttamente nel browser, mi autorizza ad entrare dove non dovrei entrare?
A questo ci avevo già pensato.

Inizialmente avevo risolto con un semplice:
- Codice: Seleziona tutto
if(session.getAttribute("docente")==null)
response.sendRedirect("./index.jsp?error=1");
fi
Il problema, però, è che riesco ad accedere comunque ad una home page di un altro account, se ho fatto il login anche con un altro username.
Esempio:
1) faccio il login con l'account "pippo"
2) edito nella barra degli indirizzi il parametro user=pippo in user=paperino
Comunque, sembra che sia risuscito a risolvere:
- Codice: Seleziona tutto
String user=request.getParameter("user");
Docente d=DocenteDAO.getInstance().getDocenteByUsername(user);
if((session.getAttribute("docente")!=null) && (user.equals(d.getNome())))
session.getAttribute("docente");
else
session.invalidate();
response.sendRedirect("./index.jsp?error=1"); //Accesso negato alla risorsa
Ho fatto una prova, editando il campo user nella barra degli indirizzi e mi ritorna in index.jsp con errore.
Comunque, se hai qualche altro suggerimento, non farti problemi a scrivere
