1. Написать SessionFilter.scala код
Package Filtersimport javax.inject. {inject, singleton} import akka.stream.materializerimport controllers.routesimport play.api.mvc. {Фильтр, requestheader, результаты, результаты} Импорт Scala.concurrent.future@singletonclass sessionfilter @injjoct () (ImptectAct altrater) vestends) vestends valter Применить (nextfilter: requestheader => future [result]) (requestheader: requestheader): future [result] = {if (! requestheader.session.get ("user"). isdefine &&! requestheader.path.contains ("/signin") &&! requestheader.path.contains ("/assets/") { Future.successful (refuls.redirect (routes.signcontroller.showsignin ()))} else {nextfilter (requestheader)}}}иллюстрировать:
! requestHeader.session.get («Пользователь»). Isdefined используется для определения того, существует ли пользователь в сеансе
! requestheader.path.contains ("/signin") используется для исключения страницы входа в систему. Эта страница должна быть видна, если она не зарегистрирована, чтобы предотвратить прыжок с мертвой петлей.
! requestheader.path.contains ("/assets/") используется для исключения статических ресурсов, таких как изображения, CSS, JavaScript и т. Д.
2. Используйте SessionFilter в фильтрах.
Файл Filters.scala является шаблоном, автоматически сгенерированным активатором. Чтобы использовать SessionFilter, просто добавьте к нему SessionFilter: SessionFilter и SEQ (SessionFilter).
Импорт javax.inject._import Filters. {exampleFilter, SessionFilter} import play.api._import play.api.http.httpfiltersimport play.api.mvc ._/*** Этот класс настраивает фильтры, которые запускаются по каждому запросу. Этот * класс запрашивается Play, чтобы получить список фильтров. * * Play автоматически использует фильтры из любого класса с именем * `Filters`, который размещается корневым пакетом. Вы можете загрузить фильтры * из другого класса, добавив настройку `play.http.filters` в файл конфигурации` application.conf`. * * @param env Настройки базовой среды для текущего приложения. * @param examplefilter Демонстрационный фильтр, который добавляет заголовок к * каждому ответу. */ @SingletonClass Filters @Inject () (Env: Environment, ExampleFilter: exampleFilter, SessionFilter: SessionFilter) Extends httpfilters {переопределить al filters = {// Использовать пример фильтра, если мы работаем в режиме разработки. Если // мы работаем в производственном или тестовом режиме, то вообще не используйте // фильтры. if (env.mode == mode.dev) seq (examplefilter) else seq.empty seq (sessionfilter)}}}}}Выше приведено редактор, введенный для игры для Scala для реализации фильтрации SessionFilter. Пользователи, которые не вошли в прыжок на страницу входа в систему. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!