Come si rimuove un cookie in un servlet Java?Come si rimuove un cookie in una servlet Java
ho provato questo: http://www.jguru.com/faq/view.jsp?EID=42225
EDIT: Il seguente ora funziona con successo sembra essere la combinazione di:
response.setContentType("text/html");
e
cookie.setMaxAge(0);
Prima stavo facendo:
//remove single signon cookie if it hasn't been validated yet
response.setContentType("text/html");
Cookie cookie = new Cookie(SSORealm.SSO_COOKIE_NAME, "");
cookie.setDomain(SSORealm.SSO_DOMAIN);
cookie.setMaxAge(-1);
cookie.setPath("/");
cookie.setComment("EXPIRING COOKIE at " + System.currentTimeMillis());
response.addCookie(cookie);
Che scade il cookie quando il browser viene chiuso come da the documentation.
Un valore negativo significa che il cookie non viene memorizzato in modo persistente e verrà eliminato alla chiusura del browser. Un valore zero provoca la cancellazione del cookie.
Il frammento di lavoro completo per scadere un cookie è:
//remove single signon cookie if it hasn't been validated yet
response.setContentType("text/html");
Cookie cookie = new Cookie(SSORealm.SSO_COOKIE_NAME, "");
cookie.setDomain(SSORealm.SSO_DOMAIN);
cookie.setMaxAge(0);
cookie.setPath("/");
cookie.setComment("EXPIRING COOKIE at " + System.currentTimeMillis());
response.addCookie(cookie);
Ho provato setMaxAge (0) inizialmente in firefox ma l'ho visto ancora elencato nei miei cookies come "Scade: alla fine della sessione" e pensavo che il mio servlet stesse ancora ricevendo quel cookie scaduto. Potrebbe essere stata una combinazione di dover impostare il response.setContentType ("text/html"); e setMaxAge (0); che ha finalmente funzionato. Ho provato di nuovo e sembra che il cookie con setMaxAge (0) non verrà inviato nelle richieste successive ai miei servlet Java. – Dougnukem
Risposta chiara e utile, grazie. –