0
私はScala Playアプリケーションで作業しています。レスポンスのHTTPヘッダーにパラメータを設定して、ブラウザのキャッシュを無効にする多くのコントローラアクションが必要です。Scala Play 2.5 Deadbolt-2でのアクションの構成
package action
import be.objectify.deadbolt.scala.AuthenticatedRequest
import play.api.http.HeaderNames
import play.api.mvc._
import scala.concurrent.Future
import scala.util.Success
case class NoCache[A](action: Action[A]) extends Action[A] with HeaderNames {
def apply(request: AuthenticatedRequest[A]): Future[Result] = {
action(request).andThen {
case Success(result) => result.withHeaders(
(CACHE_CONTROL -> "no-cache, no-store, must-revalidate"),
(PRAGMA -> "no-cache"),
(EXPIRES -> "0")
)
}
}
lazy val parser = action.parser
}
しかし、それはこの中でミックスしようとしてコンパイルされません。私もデッドボルト-2を使用して(とデッドボルト-2のAuthenticatedRequest[_]
を必要とする)していますので、私はそれがこのようになりますNoCache
複合アクションを作成することを決定し、私のコントローラアクションの実装へのアクション
def link = deadbolt.SubjectPresent()() andThen NoCache() { implicit request =>
または
def link = NoCache(deadbolt.SubjectPresent()()) { implicit request =>
が、それらを構成する方法を見ることができない...