Domanda

Ho un problema con le funzionalità di autenticazione di Servlet 3.0:

Con questo codice in un v3 Servlet:

log.info(""+request.getUserPrincipal());
log.info(""+request.getAuthType());
log.info("===^===");
request.logout() ;
log.info(""+request.getUserPrincipal());
log.info(""+request.getAuthType());
request.authenticate(response) ;
log.info("===v===");
log.info(""+request.getUserPrincipal());
log.info(""+request.getAuthType());

Vorrei sempre si aspettano di vedere le finestre Nome utente / accesso, a causa della funzione logout(). Invece, sembra essere un meccanismo di 'cache', che ripopolare le credenziali e cancellare il mio Logout ...

  

Ammin

     

BASE

     

=== === ^

     

nullo

     

nullo

     

=== === v

     

Ammin

     

BASE

Si tratta di un problema con il mio firefox, o qualcosa che mi manca nel codice Servlet?

È stato utile?

Soluzione

  

I sarebbe sempre aspettare di vedere le finestre Nome utente / accesso, a causa della logout() funzione. Invece, sembra essere un meccanismo di 'cache', che ripopolare le credenziali e cancellare il mio Logout ...

Questo è il modo HTTP Auth di base è stato progettato, consente a tutti di stato autenticazione da tenere nel client. In altre parole, il suo impossibile per il logout con digerire autenticazione di base /, il server non può fermare un client da caching e inviare nuovamente un autenticatore autenticazione base alle successive richieste al server.

Il mio suggerimento è quello di autenticazione basata forma di utilizzo e la login metodo di HTTPServletRequest .

Bibliografia

Altri suggerimenti

Non è né. Una volta effettuato l'accesso, il browser sarà sempre passare l'ID utente e la password per l'url. Fino a quando si riavvia il browser. Per quanto ne so ogni browser lo fa. E per quanto ne so non c'è attualmente alcun modo per dire al browser di dimenticare le credenziali.

Tuttavia, vedrete la sessione sarà diverso una volta che la sessione. La soluzione più comune è quella di aggiungere una variabile di qualche tipo alla sessione. Dire "loggedin". Se questa variabile non è presente si conosce l'utente deve esegui prima il login e potrai reindirizzare dire login.jsp. E una volta che l'utente superato questo jsp si imposta di nuovo questa variabile.

L'uso dei filtri è possibile applicare questo livello di sistema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top