【发布时间】:2015-03-21 06:58:24
【问题描述】:
我通过读取请求标头使用操作组合进行 api 授权。我想在响应标头上注入身份验证令牌,以便客户端可以使用它在连续调用中调用 API。到目前为止,我已经使用动作组合拦截了请求,我可以在到达控制器代码之前设置响应头还是只能在控制器代码上完成?
可以在invokeBlock下面注入响应头吗?
def invokeBlock[A](request: Request[A], block: AuthorizedRequest[A] => Future[Result]): Future[Result] = {
val requestToken = sessionTokenPair(request)
requestToken match {
case Some(token) => {
AuthenticationManager.validateAPIToken(token).map { sh =>
block(new AuthorizedRequest(sh, request))
}.getOrElse{
Future.successful(Forbidden(Json.toJson(
Error(status = Status.FORBIDDEN,errorCode = 43, message = "Bad Request",developerMessage="Issue")
)))
}
}
case _ => {
Future.successful(Forbidden(Json.toJson(
Error(status = Status.FORBIDDEN,errorCode = 43, message = "Bad Request",developerMessage="Issue")
)))
}}
}
}`enter code here`
【问题讨论】:
标签: scala playframework http-headers