Play FrameworkにREST APIを作成しており、認証用にSilhouette(JWT)を使用しています。カスタムフィルタを再生します。
すべてのセキュリティ保護された応答にヘッダーを追加する必要があります(ユーザーがログに記録されている場合のみ)。だから私はfilterを使ってそれらを追加すると考えました。要求のために
「POST/SIGNIN」[無効な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
}
}
フィルタクラス:ほぼ1年合格
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
フィルタがトリガされ、含まれていないとエラーは発生しません... –
プロンプトを解決しましたか? –