2014-06-17 23 views
9

używam playframework 2.3.0, niedawno Chcę dodać CSRFFilternie mogę importować filtry w playframework 2.3.0

gdy importować CSRF w global.scala:

import play.filters.csrf._ 

Dostaję błędu dla:

[błąd] G: \ testprojects \ ok \ Global.scala 7: filtry obiekt nie jest członkiem pakietu grać [błąd] importu play.filters.csrf._

Moja plugin.sbt jest

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

używam Build.scala zamiast build.sbt

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

) 

Odpowiedz

9

Według documentation trzeba dodać zależność filtrów do projektu:

libraryDependencies += filters 

Dokumentacja jest dla build.sbt, ale myślę, że powinna działać również z Build.scala.

+3

Pamiętaj, że aby uzyskać dostęp do "filters" (Play 2.4.x), musisz "zaimportować play.Play.autoImport._" - spędziłeś kilka minut próbując dowiedzieć się, dlaczego filtry nie zostały rozwiązane w mojej kompilacji .scala – Brett

+2

Obecnie jest to 'import play.sbt.Play.autoImport._'' play.Play' jest przestarzałe – poroszd

+0

@poroszd Otrzymuję ten sam błąd, gdy mój projekt nie jest w stanie zidentyfikować ani play.sbt ani odtwarzania .filtry. Czy możesz mi pomóc w identyfikacji tego, czego tu brakuje? błąd, który dostaję, nie można znaleźć symbol symbol symbol: klasa CORSFilter lokalizacja: klasa Filtry – user1242321

1

play ramowa GzipFilter pracuje dla mnie,

mój build.sbt plik

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 

wreszcie będzie działać .... (komenda zmiana jest ważna) jeśli IDE nie wykrywa play.filters
wykonać powyższe czynności jeszcze raz
wreszcie Kopiuj Wklej poniżej kod

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

dziękuję to działa – MSH

1

In Play 2.4.3, import jest:

import play.filters.cors.CORSActionBuilder 

To już nie nazywa csrf, ale cors.