2017-01-22 4 views
0

Also, was ich tun möchte, ist ein Cookie für alle Anfragen basierend auf einer bestimmten kontextspezifischen Bean setzen. Ich habe eine Bean contextBean, auf die verschiedene Komponenten schreiben können (es ist Thread-sicher) und für jede Anfrage wird der aktualisierte Kontext dann als ein Cookie geschrieben. Um jedoch ein Filter verwenden, da nicht funktioniert:Setzen eines Cookies für alle Anfragen im Frühjahr

doFilter(request, response, chain) { 
    chain.doFilter(); 
    response.addCookie(...); 
} 

response.isCommitted() ist true nach der Kette laufen und das gleiche Problem besteht mit einem HandlerInterceptor, wenn der Controller mit @ResponseBody bezeichnet ist (es scheint für Methoden ohne ResponseBody zu arbeiten) . Gibt es eine Möglichkeit, dies für alle Handler zu tun?

Antwort

0

Wie Sie bereits gesagt haben, funktioniert das Setzen von Cookies in der Nachbearbeitungsphase nicht. Validiere es und setze es in die Pre-Process-Phase des Filters.

Das heißt:

doFilter(request, response, chain) { 
    response.addCookie(...); 
    chain.doFilter(); 
} 
Verwandte Themen