7

嗨,我有一个身份验证服务,它适用于请求(一些 Header-Data 和 Cookie)、响应(设置或删除 cookie)和会话(存储 userId 和 rememberMe 信息)。

在 play 1.x 中,很容易伪造请求、响应、Cookie 和会话。它可以很容易地用Session.current().set(new Session()). 在 play 2.0 中,这不再起作用了。

如何在请求中添加 cookie?我怎么能操纵会话?我看到存在 FakeApplication 和 FakeRequest 但我没有得到它,如何使用它们。

任何提示表示赞赏。

4

2 回答 2

14

它还没有为 Play 2.0 做好准备,但在 Play 2.1(和当前的 master)中,您将能够编写:

fakeRequest(GET, "/foo")
    .withSession("bar", "baz")
    .withCookies(cookie("bah", "toto"));
于 2012-04-30T11:41:56.197 回答
4

可以像 play1.x 那样做。中心点是Context. 此外,您必须创建一个DummyRequest实现所需方法的方法。然后可以创建以下内容

final Request request = new DummyRequest();
Context.current.set(new Context(request, new HashMap <String, String>(), 
        new HashMap <String, String>()));

在你的测试中你可以得到Context.current().session(),Context.current().response()Context.current().request().

你可以在这里看到一个test-example

于 2012-05-09T12:53:52.747 回答