【问题标题】:playframework disable CSRF filterplayframework 禁用 CSRF 过滤器
【发布时间】:2017-09-20 18:35:31
【问题描述】:

我们有一个用 Scala 编写的游戏应用程序。我们想根据我们的要求完全禁用 CSRF 过滤器。播放文档(https://www.playframework.com/documentation/2.5.x/JavaCsrf)上没有给出太多说明。任何帮助将不胜感激。

【问题讨论】:

  • 你确定默认开启了吗?
  • 不确定。比如说。如果我有一个脚本,我想访问它不允许的休息 URL。这意味着它默认启用对吗?
  • @Prakash 仅在 2.6 中默认启用,在 2.5 中未启用,因此您的请求可能还有其他问题
  • @Qingwei 我解决了。谢谢。

标签: scala playframework playframework-2.0 csrf


【解决方案1】:

就 2.6 版而言,禁用 CSRF 过滤器的最简单方法是将以下行添加到 application.conf:

play.filters.disabled += play.filters.csrf.CSRFFilter

请参阅 Play Framework 文档中的 Disabling Default Filters

【讨论】:

【解决方案2】:

如果您使用编译时依赖注入,过滤器的运行时配置将被忽略。相反,您需要将代码放入 ApplicationLoader:

override def httpFilters: Seq[EssentialFilter] = {
  super.httpFilters.filterNot(_.getClass == classOf[CSRFFilter])
}

https://www.playframework.com/documentation/2.6.x/Filters#Compile-Time-Default-Filters

【讨论】:

  • 这只有在你像我这样的测试中使用Server.withApplicationFromContext() { context => new BuiltInComponentsFromContext(context) with HttpFiltersComponents {} } 的构造时才会有所帮助=)谢谢。
猜你喜欢
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多