9

我用playframework 2.3.0,最近想添加CSRFFilter

当我在 global.scala 中导入 csrf 时:

import play.filters.csrf._

我收到一个错误:

[错误] G:\testprojects\app\Global.scala:7: 对象过滤器不是 play 包的成员 [错误] 导入 play.filters.csrf._

我的 plugin.sbt 是

...
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.0")
...

我使用 Build.scala 而不是 build.sbt

lazy val root  = Project("root", base = file(".")).enablePlugins(PlayScala)
.settings(baseSettings: _*)
.settings(libraryDependencies++=appDependencies)
.settings(
  scalaVersion := "2.11.1",
  version := "1.0"

)
4

3 回答 3

10

根据文档,您必须将过滤器依赖项添加到您的项目中:

libraryDependencies += filters

该文档适用于 build.sbt,但我想它也应该适用于 Build.scala。

于 2014-06-17T09:00:18.927 回答
1

Play Framework GzipFilter为我工作,

我的build.sbt档案

name := "GZIP"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache,
  filters
)     

play.Project.playJavaSettings

steps to get play.filters package
1. play
2. update            //important
3. clean
4. eclipse
5. compile
6. run

最后它会工作....(更新命令很重要)如果 IDE 没有检测到play.filters 再次
执行上述步骤
最后复制粘贴下面的代码

import play.GlobalSettings;
import play.api.mvc.EssentialFilter;
import play.filters.gzip.GzipFilter;

public class Global extends GlobalSettings {
    public <T extends EssentialFilter> Class<T>[] filters() {
        return new Class[]{GzipFilter.class};
    }
}

于 2014-12-30T11:53:42.337 回答
1

在 Play 2.4.3 中,导入是:

import play.filters.cors.CORSActionBuilder

它不再称为csrf,而是cors

于 2015-10-03T04:50:16.260 回答