Newsgroup: it.comp.java
Titolo: login servlet

Ma come si fa a fare il login tramite la finestra popup (non con la form) ad
una servlet ?
Non sto trovando nulla in rete sull'argomento, cosa dovrei scrivere nella
servlet ?
grazie a chi mi aiuterà
Gabriolè

 ha scritto nel messaggio
news:a15a1l$oi8q6$1...@ID-45091.news.dfncis.de...


 ha scritto nel messaggio
news:7eqZ7.13442$SE3.4...@twister1.libero.it...


 Gabriolč

 dell'EJB la login dell'utente.
L'autenticazione che vuole Gabrio, richiede n-passaggi. Io dichiarerei una
web resource collection ( è tutto standard J2EE, servlet 2.2) dove definisco
quale risorsa web voglio porre sotto vincolo d'autenticazione, scelgo il
metodo di autenticaizione, che può essere basic, Form, e certificate.
la prima fa il prompt al browser di lanciare una finestra di autenticazione,
il secondo ti consente di programmare una servlet o pagina http per
l'autenticazione, l'ultimo è a mezzo di certificato installato nel browser.
Mi sembra che si facesse richiesta del primo, che se non vado errato,
autentica con metodo HTTP sul reame di sicurezza di default dell'appserver,
e quindi non su un tuo custom (ovvero l'entity ejb). Per ovviare a questo
farei in modo che, in seguito ad un autenticazione riuscita, si fa lookpup
dell'ejb e si ricerca con un metodo find...() rispetto alla UserID
inserita...Insomma, è lungo ma fattibile. Qualsiasi cosa, sono qui... ;)
Giuseppe

 inserita...Insomma, è lungo ma fattibile. Qualsiasi cosa, sono qui... ;)
ottimo, mi sembra che sia un modo simile a quello utilizzato dal tutorial di
j2ee
nell'esempio "DukesBankApp", dove per trovare i 'conti correnti' di un
utente fa il find sull'ejb utilizzando il nome dell'utente ricavato con
getUserPrincipal().getName().
Grazie mille
Michele Fabbri

 Giuseppe
Ok, ho capito, (ma č possibile che il meccanismo sia cosě complicato?
d'altra parte in internet una delle operazioni piů frequenti č l'iscrizione
"automatica" ad un servizio ed il login, boh).
Cmq, ho capito: dovrei mettere sotto "autenticazione" Basic una servlet di
login. L'autenticazione deve essere di un ruolo (role) da me creato in cui
non sta nessun utente, o meglio sta qualunque utente (a proposito come si
fa?). Dopo l'accesso nella mia servlet di login controllo che l'user sia in
un entity bean, se si creo la sessione in cui inserisco l'attributo userid
(potrei inserire direttamente l'ejb ?) per l'utilizzo nelle altre servlet.
E' ovvio che fare una form che posti gli attributi direttamente alla servlet
di login sarebbe molto piů semplice, ma voglio provare prima ogni possibile
alternativa.
Per ora mi trovo fermo a cercare di far partire una qualunque autenticazione
con j2ee + deploytool, ma non ne vuole sapere di funzionare: ho fatto solo
un'applicazione con una banale servlet ed ho:
- inserito nell'applicaione (Security tab) un Ruolo di nome "Persone" e un
gruppo.
- in Security tab del war ho messo Basic, e poi la classe servlet nella Web
Resource Collection
Faccio il deployment, appro IE e all'indirizzo mi appare la servlet SENZA
nessuna autenticazione, mah, dovrň sbatterci ancora molto :-(
Ciao
Gabriolč

 request.getUserPrincipal().getName()
ti conviene ragionare per ruoli, e partecipazione di principal al ruolo...è
molto più portabile
Giuseppe

 Resource Collection
occhio che questa impostazione non va per classi, ma per pattern dell' URL.
Giuseppe

"Giuseppe Acito"  ha scritto nel messaggio
news:a17bvp$2kd8$1...@newsreader1.mclink.it...

Ok, ci sono, giustamente si doveva specificare l'alias della servlet e non
la classe. thanks!
Finalmente sono riuscito ad autenticare ... ma solo gli utenti del gruppo
del ruolo che ho settato.
Il problema ora "critico" è: questa soluzione è statica, io invece voglio
autenticare user che si iscrivono dinamicamente (beh ci siamo capiti), dimmi
se sbaglio, quello che proponi tu è far autenticare tutti (chiunque) dal
server e solo dopo verificare l'account su una servlet di login ?
Se così, come faccio il 1° passo ? ovvero far chiedere uid e pass e far
passare CHIUNQUE (una volta passato dal server, dentro la mia servlet
richiamo getRemoteUser()per sapere id e pass)
accetto qualunque consiglio.
Ciao,
Gabriolè

"Giuseppe Acito" <giuseppeacito@ERASE_MEmclink.it> ha scritto nel messaggio
news:a17bdg$2kbj$1...@newsreader1.mclink.it...

non mi e' molto chiaro in quale altro modo posso ottenere l'identificativo,
ma probabilmente perche' sono cose che devo guardare meglio.
Ciao e Grazie
Michele

 richiamo getRemoteUser()per sapere id e pass)
In parole povere, il tuo dominio di sicurezza cambia, non è più quello
dell'application server (quindi molto probabilmente passante per
autenticazioni HTTP), ma cambi completamente reame, magari una tabella sul
tuo DB. La famosa servlet di login, dovrà controllare i vari stati di un bel
model (magari un ejb, non so...) che contengono la business logic per
autenticare gli utenti. Il problema sembra difficile, ma è concettualmente
semplice da risolvere.
Ciao
Giuseppe