Sto tentando di impostare il flag httponly sul cookie JSESSIONID. Tuttavia, sto lavorando in Java EE 5 e non posso utilizzare setHttpOnly()
. Per prima cosa ho provato a creare il mio cookie JSESSIONID dal servlet doPost()
utilizzando response.setHeader()
.Impostazione httponly nel cookie JSESSIONID (Java EE 5)
Quando non ha funzionato, ho provato response.addHeader()
. Neanche questo ha funzionato. Poi, ho appreso che il servlet gestiva la conversione della sessione in un cookie JSESSIONID e lo inseriva nell'intestazione http, quindi se voglio giocare con quel cookie, dovrò scrivere un filtro. Ho scritto un filtro e ho giocato con setHeader()
/addHeader()
lì, ancora inutilmente.
Quindi, ho appreso che nell'azione oggetto risposta c'è un'azione di svuotamento/chiusura prima che arrivi al filtro, quindi se voglio manipolare i dati, devo estendere HttpServletResponseWrapper
e passarlo a filterChain.doFilter()
. Questo è fatto ma non sto ancora ottenendo risultati. Chiaramente sto facendo qualcosa di sbagliato ma non so cosa.
Non sono sicuro che questo sia pertinente per la domanda in questione, ma nessun documento html viene restituito dal servlet al browser. Tutto ciò che sta realmente accadendo è che alcuni oggetti vengono popolati e restituiti a un documento JSP. Ho assunto che l'oggetto Session sia trasformato in un cookie JSESSIONID e inserito, insieme agli oggetti aggiunti alla richiesta, in un'intestazione http prima di essere inviato al browser.
Sarei felice di pubblicare un codice ma voglio escludere la possibilità che le mie difficoltà derivino da un fraintendimento della teoria.
aggiunto del codice formattazione perché Othe era un pezzo di Wall of Text inavvicinabile. Potrebbe ancora prendere in considerazione la pubblicazione di un codice di esempio di ciò che hai provato. –