2014-06-17 30 views
9

我用playframework 2.3.0,最近我要添加CSRFFilter我不能playframework進口過濾器2.3.0

當我輸入CSRF在global.scala:

import play.filters.csrf._ 

我得到一個誤差爲這樣:

[錯誤] G:\ testprojects \應用\ Global.scala:7:對象過濾器是不包的成員 玩 [錯誤]進口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" 

) 

回答

9

根據你必須過濾器的依賴添加到您的項目中documentation

libraryDependencies += filters 

該文檔是爲build.sbt,但我想它也應該與Build.scala一起工作。

+3

請注意,您需要'import play.Play.autoImport._'來訪問'filters'(Play 2.4.x) - 花了好幾分鐘的時間試圖弄清楚爲什麼我的Build中的過濾器無法解析.scala – Brett

+2

其實它現在'import play.sbt.Play.autoImport._','play.Play'已被棄用 – poroszd

+0

@poroszd我得到了同樣的錯誤,我的項目無法識別play.sbt或play .filters。你能幫我找出我在這裏失蹤的事嗎?我得到的錯誤是找不到符號 符號:class CORSFilter location:class篩選器 – user1242321

1

播放框架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}; 
    } 
} 

+0

謝謝你的作品 – MSH

1

在播放2.4.3,進口是:

import play.filters.cors.CORSActionBuilder 

它不再叫csrf,但是cors