1. Tulis Sesi Sesi.
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 apply(nextFilter: RequestHeader => Future [hasil]) (RequestHeader: RequestHeader): Future [hasil] = {if (! RequestHeader.Session.get ("User"). IsDefine &&! RequestHeader.path.contains ("/Signin") &&! RequestHeader.path.contains ("/aset/") { Found.successful (results.redirect (routes.signcontroller.shognin ()))} else {nextFilter (requestHeader)}}}menjelaskan:
! RequestHeader.Session.get ("pengguna"). ISDefined digunakan untuk menentukan apakah ada pengguna di sesi tersebut
! requestheader.path.contains ("/Signin") digunakan untuk mengecualikan halaman login. Halaman ini harus terlihat jika tidak masuk, untuk mencegah lompatan loop mati.
! requestheader.path.contains ("/aset/") digunakan untuk mengecualikan file sumber daya statis, seperti gambar, CSS, JavaScript, dll.
2. Gunakan sessionfilter di filter.scala di direktori aplikasi
File filter.scala adalah templat yang dihasilkan secara otomatis oleh Activater. Untuk menggunakan sessionfilter, cukup tambahkan sessionfilter: sessionfilter dan seq (sessionfilter) ke dalamnya.
Impor javax.inject._import filter. {exampleFilter, sessionFilter} import play.api._import play.api.http.httpfiltersImport play.api.mvc ._/*** Kelas ini mengkonfigurasi filter yang berjalan pada setiap permintaan. Kelas * ini ditanyai dengan bermain untuk mendapatkan daftar filter. * * Play akan secara otomatis menggunakan filter dari kelas mana pun yang disebut * `filter` yang ditempatkan paket root. Anda dapat memuat filter * dari kelas yang berbeda dengan menambahkan `play.http.filters` pengaturan ke * file konfigurasi` application.conf`. * * @param Env pengaturan lingkungan dasar untuk aplikasi saat ini. * @param exampleFilter Filter demonstrasi yang menambahkan header ke * setiap respons. */ @Singletonclass filter @Inject () (env: lingkungan, exampleFilter: exampleFilter, sessionFilter: sessionFilter) memperluas httpfilters {override val filter = {// Gunakan filter contoh jika kami menjalankan mode pengembangan. Jika // kami berjalan dalam mode produksi atau uji maka jangan gunakan // filter apa pun. if (env.mode == mode.dev) seq (exampleFilter) else seq.empty seq (sessionfilter)}}Di atas adalah editor yang diperkenalkan untuk bermain untuk Scala untuk mengimplementasikan penyaringan sessionfilter. Pengguna yang belum masuk lompat ke halaman login. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!