相关疑难解决方法(0)

Playframework安全模块:您如何"登录"以测试FunctionalTest中的安全控制器?

编辑:我正在使用Play!1.2版(生产版)

我想测试由安全模块类保护的控制器操作,因此我需要在测试我的控制器之前登录(否则我将被重定向到登录页面).

我在调用安全操作之前尝试登录.这是我的FunctionalTest的样子:

@Test
public void someTestOfASecuredAction() {
    Map<String, String> loginUserParams = new HashMap<String, String>(); 
    loginUserParams.put("username", "admin"); 
    loginUserParams.put("password", "admin");

    // Login here so the following request will be authenticated:
    Response response = POST("/login", loginUserParams);

    // The following is an action that requires an authenticated user:
    Map<String, String> params;
    params.put("someparam", "somevalue");
    response = POST("/some/secured/action", params);

    assertIsOk(response); // this always fails because it is a 302 redirecting to /login
}
Run Code Online (Sandbox Code Playgroud)

单步执行代码,我已经验证登录帖子是否有效 - 它会导致重定向响应,并将位置设置为主页(表示登录成功).

但随后在随后的安全行动调用中,我总是被重定向到"/ login"页面 - 表明我之前的登录没有坚持第二个POST请求.

查看FunctionalTest的源代码,我看到有一个@Before拦截器可以清除所有cookie.我尝试在我自己的中间超类中覆盖此截取(以保留cookie),但这也不起作用.

编辑:我把play.mvc.Before拦截器与org.junit.Before混淆了 - …

playframework

17
推荐指数
1
解决办法
4815
查看次数

在测试期间向Session添加值(FakeRequest,FakeApplication)

我正在尝试围绕从会话中读取一些数据的方法构建一些测试.

我尝试扩展FakeRequest和覆盖该session值,但是我在编译时遇到错误,说session必须是一个val覆盖时,这将无效.

如何修改a FakeRequest()以向会话添加值?

scala playframework-2.0

5
推荐指数
1
解决办法
1808
查看次数

标签 统计

playframework ×1

playframework-2.0 ×1

scala ×1