我想拦截对我的播放后端的所有请求,并为他们添加自定义Cookie。我知道响应有withCookie方法,但我无法找到任何类似的请求。此外,在请求中处理cookie的所有工具似乎只读,作为一个完全新手玩我被卡住了
我需要这个,因为我们正在将现有的网络应用程序迁移到不允许使用Cookie的基于cordova的移动应用程序。我们的身份验证系统基于会话cookie。我已经能够以json格式发送会话ID,我想将其作为标头发送,如果需要,在Play中的过滤器或拦截器上生成会话cookie,这样我就不需要在后端更改我们的身份验证系统。 / p>
GlobalSettings或Play Filter都是拦截请求的好选择,但我仍然不知道如何添加cookie。任何人都可以给我一个小样本或解释我怎么能这样做?
谢谢!
答案 0 :(得分:1)
看来我有点傻。
我可以使用Cookie http标头轻松提供我想播放的所有Cookie,因此无需在此处拦截任何请求。
对不起噪音
答案 1 :(得分:0)
我今天遇到了同样的问题,花了很多时间试图解决它。这是我的解决方案(通过实现Request类)
val newRequest = new MockRequestImpl(request)
return block(newRequest)
`
class MockRequestImpl[A](req: Request[A]) extends Request[A] {
override val connection: RemoteConnection = req.connection
override val method: String = req.method
override val target: RequestTarget = req.target
override val version: String = req.version
override val headers: Headers = req.headers
override val attrs: TypedMap = req.attrs
override val body: A = req.body
// override cookies
override def cookies = Cookies(Seq(Cookie("SessionId","00000000")))
}
`