1
我在Play Framework中爲REST API提供了Silhouette用於身份驗證(JWT)的幫助。播放自定義過濾器JSON錯誤
我需要爲每個安全響應添加一些標頭(僅當用戶登錄時)。所以我想用filter來添加它們。但是,我得到這個奇怪的錯誤,我無法弄清楚:
對於請求「POST /簽到」 [無效JSON:沒有內容可在[來源映射由於 輸入結束: 阿卡。 [email protected];行:1, 列:0]
我的過濾器:
class SecuredFilter @Inject() (silhouette: Silhouette[DefaultEnv])(implicit val mat: Materializer, ec: ExecutionContext) extends Filter {
def apply(nextFilter: RequestHeader => Future[Result])(requestHeader: RequestHeader): Future[Result] = {
val action = silhouette.UserAwareAction.async { userAwareReq =>
userAwareReq.identity match {
case None => nextFilter(requestHeader)
case Some(identity) =>
nextFilter(requestHeader).map { result =>
result.withHeaders(/* add headers*/)
}
}
}
action(requestHeader).run
}
}
過濾器類:
class Filters @Inject() (csrfFilter: CSRFFilter, securityHeadersFilter: SecurityHeadersFilter,
securedFilter: SecuredFilter) extends HttpFilters {
override def filters: Seq[EssentialFilter] = Seq(csrfFilter, securityHeadersFilter, securedFilter)
}
您的過濾器是否爲默認包裝?如果沒有,你必須通知Play的包 - [見本](https://www.playframework.com/documentation/2.5.x/ScalaHttpFilters#Using-filters)(如果你沒有閱讀它)。 – Nio
過濾器被觸發,當它不包含時,我不會收到錯誤... –
您是否已經解決了問題? –