为什么我在Play 2中遇到“配置错误[Missing application.secret]”?

时间:2012-12-03 23:40:55

标签: scala playframework-2.0

我编写了一个scala方法来进行身份验证并在会话中保存特定的令牌,如下所示:

def logIn = Action(parse.json) { request =>
request.body.validate.map { entity =>
  Authentication.authenticate(entity.username, entity.password) match {
    case "" => NotFound(RestResponses.toJson(RestResponse(NOT_FOUND, "Invalid username or password.")))
    case token: String => Ok(RestResponses.toJson(RestResponse(OK, "Username %s has been succesfully logged in".format(entity.username)))).withSession(TokenKey -> token)
  }
}
  .recover { Result =>
    BadRequest(RestResponses.toJson(RestResponse(BAD_REQUEST, "Unable to parse content type for user authentication.")))
  }

}

为了测试logIn方法,我编写了一个测试方法:

"A POST request to login a user" should "return OK " in {
running(FakeApplication()) {
  val node = Json.toJson(AuthenticationUser("cristi", "cristi-password"))(controllers.AuthenticationService.authUserWrites);
  val result = AuthenticationService.logIn(new FakeRequest(Helpers.POST, "/", FakeHeaders(), node))

  status(result) should equal(OK)
  contentType(result) should be(Some("application/json"))
  contentAsString(result) should include("succesfully logged in")
}

}

我根本不明白为什么会收到此错误:

[info] - should return OK  *** FAILED ***
[info]   play.api.PlayException: Configuration error[Missing application.secret]

[info]   at play.api.libs.Crypto$$anonfun$sign$2.apply(Crypto.scala:30)
[info]   at play.api.libs.Crypto$$anonfun$sign$2.apply(Crypto.scala:30)

我确信会议的内容......但是什么?

1 个答案:

答案 0 :(得分:4)

application.secret=changeme文件中添加conf/application.conf