0

我想确保我的方法不会修改某些 cookie,例如 PLAY_FLASH 和 PLAY_SESSION(为什么?因为bug 785)。

我试过这个:

// This method should never modify any PLAY cookie.
public static void doNothingPost() throws InterruptedException {
    logger.info("Done nothing");

    response.cookies.remove("PLAY_FLASH");
    response.cookies.remove("PLAY_ERRORS");
    response.cookies.remove("PLAY_SESSION");

    ok();
}

好吧,事实证明这respone.cookies.remove()会主动删除一个cookie(SetCookie with a past expiry date)。我如何告诉 play 不要为特定的 cookie 发送任何 SetCookie 标头?(还是全部?)

4

1 回答 1

0
  • t0 -> 调用 setSession
  • t5 -> 调用 doNothing
  • t10 -> setSession 返回
  • t15 -> doNothing 返回

    public static void setSession(String uuid){
        Cache.add(uuid, "guven");
        response.setCookie("username", "guven");
        await(1000);
        ok();
    }
    
    public static void doNothing(String sameUUIDWithSetSessionParameter){
        String username = Cache.get(sameUUIDWithSetSessionParameter, String.class);
        Cache.delete(sameUUIDWithSetSessionParameter);
        Logger.info("dn: " + username);
        await(1000);
        ok();
    }
    

如果这些连续的 ajax 调用没有不同的会话 id,那么忘记 uuid 参数,只使用session.getId()Cache

于 2013-02-08T03:24:58.887 回答