在组合的Actions中添加会话状态

时间:2013-10-27 02:35:53

标签: playframework playframework-2.0

有没有办法在会话中添加状态,同时保留已添加到其中的其他状态?对于用例,请考虑http://www.playframework.com/documentation/2.1.3/ScalaActionsComposition

中的一个示例
 def Authenticated(f: (User, Request[AnyContent]) ⇒ Result) = {
    Action { request ⇒
      val result = for {
        id ← request.session.get("user")
        user ← User.find(id)
      } yield f(user, request).withSession(request.session + "newKey" -> "newValue")
      result getOrElse Unauthorized
    }
  }
  def index = Authenticated { (user, request) ⇒
    Ok("Hello " + user.name).withSession(request.session + "oldKey" -> "oldValue")
  }

我在示例中添加了两个“.withSession”调用。在我的测试中,我没有找到一种方法来添加“newKey”而不会消除“oldKey”。

我想到的解决方案都很难看。目前,我的解决方法是在我自己的cookie中保留“newKey”和相关状态,但似乎很麻烦。有没有办法将其添加到Play会话?

0 个答案:

没有答案