Einstellung Cookies von doFilter-Methode

Ich habe einen filter der Klasse mit doFilter-Methode. In der doFilter Methode, ich bin das setzen eines Cookies wie folgt

HttpServletResponse httpResp=(HttpServletResponse)servletResponse;
Cookie myCookie=new Cookie("test","");
myCookie.setValue("testValue");
myCookie.setPath("/");
myCookie.setDomain(".mydomain.com");
httpResp.addCookie(myCookie);
filterChain.doFilter(servletRequest,servletResponse); 

Sollte dies im Idealfall funktionieren? Das setzen eines Cookies in httpResp(HttpServletResponse-Objekt) und dann nur die Weiterleitung servletResponse(ServletResponse-Objekt)

Seltsam das cookie gesetzt ist für einige Kunden, aber für einige andere ist das cookie nicht gesetzt werden. Ich habe die cookie-Einstellungen auf den client-browser und sieht es ok aus.

  • Der code sieht gut aus. Das problem wird dadurch verursacht, an anderer Stelle. E. g. response.reset() weiter unten in der Kette wäre, deaktivieren Sie alle Kopfzeilen (und somit auch alle cookies, die gesetzt sind, bevor). Führen Sie einen debugger an naildown die Ursache. Zumindest diese Frage kann nicht zuverlässig beantwortet werden, ohne dass ein SSCCE in die Hände.
  • Es gibt keine anderen Filter. Die Kette endet an einem servlet, das leitet einfach die gleiche Anfrage und Antwort auf eine JSP. So ist es etwas wie dieses. doFilter->Servlet->forward zu JSP. Jede Möglichkeit der Header verloren??
  • Naja, wie gesagt, das problem ist nicht sichtbar in den code geschrieben, so weit. Es verursacht an anderer Stelle. E. g. eine Antwort zurücksetzen, wird eine falsche domain in der URL, nicht kompatibel cookie-Wert, das Schema zu ändern, Armen-proxy, etc...etc... Es gibt zu viele mögliche Ursachen, so dass die Beantwortung nicht möglich ist, ohne dass eine SSCCE in die Hände.
InformationsquelleAutor Sanjay | 2013-01-28
Schreibe einen Kommentar