1. Schreiben Sie SessionFilter.scala -Code
package filtersimport javax.inject.{Inject, Singleton}import akka.stream.Materializerimport controllers.routesimport play.api.mvc.{Filter, RequestHeader, Result, Results}import scala.concurrent.Future@Singletonclass SessionFilter @Inject()(implicit val mat: Materializer) extends Filter { def anwenden (NextFilter: Requestheader => Future [Ergebnis]) (Requestheader: Requestheader): Future [Ergebnis] = {if (! Requestheader.Session.get ("Benutzer"). Future.Successful (results.redirect (Routes.signcontroller.showsignin ()))} else {NextFilter (Requestheader)}}}veranschaulichen:
! Requestheader.Session.get ("Benutzer"). Isdefined wird verwendet, um festzustellen, ob ein Benutzer in der Sitzung vorhanden ist
! Requestheader.Path.Contains ("/Signin") wird verwendet, um die Anmeldeseite auszuschließen. Diese Seite sollte sichtbar sein, wenn sie nicht angemeldet ist, um einen toten Schleifensprung zu verhindern.
! Requestheader.Path.Contains ("/assets/") wird verwendet, um statische Ressourcendateien wie Bilder, CSS, JavaScript usw. auszuschließen.
2. Verwenden Sie SessionFilter in filters.scala im App -Verzeichnis
Die Datei filters.scala ist eine vom Activater automatisch generierte Vorlage. Um SessionFilter zu verwenden, fügen Sie einfach SessionFilter: SessionFilter und SEQ (SessionFilter) hinzu.
Importieren Sie javax.inject._import filters. {exampleFilter, sessionfilter} importieren.api._import Play.api.http.httpfiltersimport Play.api.mvc ._/*** Diese Klasse konfiguriert Filter, die auf jeder Anfrage ausgeführt werden. Diese * Klasse wird vom Spiel gefragt, um eine Liste von Filtern zu erhalten. * * Play verwendet automatisch Filter aus jeder Klasse mit dem Namen * "Filter", das das Stammpaket platziert wird. Sie können Filter * aus einer anderen Klasse laden, indem Sie eine Einstellung "Play.http.Filters" zur Konfigurationsdatei "Application.Conf`" hinzufügen. * * @param env grundlegender Umgebungseinstellungen für die aktuelle Anwendung. * @Param Beispielfilter Ein Demonstrationsfilter, der eine Header zu * jeder Antwort hinzufügt. */ @SingletonClass -Filter @inject () (Env: Umgebung, Beispielfilter: Beispielfilter, SessionFilter: SessionFilter) erweitert Httpfilters {override val filters = {// Verwenden Sie den Beispielfilter, wenn wir den Entwicklungsmodus ausführen. Wenn // wir im Produktions- oder Testmodus ausführen, verwenden Sie überhaupt keine // Filter. if (env.mode == modus.dev) SEQ (BeispielFilter) else seq.empty seq (SessionFilter)}}Der oben genannte Herausgeber, der für Scala veröffentlicht wurde, um die Sitzungsfilterfilterung zu implementieren. Benutzer, die sich nicht zum Anmeldeseite angemeldet haben. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!