如何阻止操作修改cookie?

时间:2012-07-11 13:23:54

标签: java http cookies playframework playframework-1.x

我想确保我的方法不会修改某些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)。我如何告诉play不要为特定cookie发送任何SetCookie标头? (或所有人?)

1 个答案:

答案 0 :(得分:0)

  • t0 - > call 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获取值