残念ながら、Java からフィルターを作成して使用する良い方法はまだありません。しかし、Scala を使用すると、必要なことを非常に簡単に行うことができます。
app/filters/AddResponseHeader.scala
以下を含む新しいファイルを作成します。
package filters
import play.api.mvc._
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
object AddResponseHeader extends Filter {
def apply(f: (RequestHeader) => Future[SimpleResult])(rh: RequestHeader): Future[SimpleResult] = {
val result = f(rh)
result.map(_.withHeaders("FOO" -> "bar"))
}
}
app/Global.scala
そして、以下を含む新しいファイルを作成します。
import filters.AddResponseHeader
import play.api.mvc.WithFilters
object Global extends WithFilters(AddResponseHeader)
これにより、すべての応答に新しい応答ヘッダーが適用されます。
更新Global.java
:ファイルでこれを使用する方法があります。
@Override
public <T extends EssentialFilter> Class<T>[] filters() {
return new Class[] {AddResponseHeader.class};
}
また、object AddResponseHeader
上記を に変更しclass AddResponseHeader
ます。