JSF2:从使用faces-redirect = true重定向的请求中删除cookie

时间:2014-04-12 15:22:50

标签: cookies jsf-2 request java-ee-6

我有以下问题: 我的一个CDI bean中的方法deleteCookie负责删除cookie。目前我这样做:

deleteCookie() {
    Map<String, Object> cookieProperties = new HashMap<>();
    cookieProperties.put("maxAge", new Integer(0));
    FacesContext.getCurrentInstance().getExternalContext().addResponseCookie(COOKIE_NAME, "", cookieProperties);
}

这些Cookie由ServletFilter (implementing javax.servlet.Filter)使用,我希望他们在致电deleteCookie()后不再在那里。

当这个方法被一个命令按钮触发时,这只能起作用,当我没有返回faces-redirect = true时。例如。 /index有效,但/index/faces-redirect=true不起作用。

原因是,faces-redirect=true导致过滤器再次应用于仍具有cookie的重定向请求。只有在将响应发送给客户后,cookie才会被删除。

如何从使用重定向发送的请求中删除Cookie?

最好的祝福 Shizanu

0 个答案:

没有答案