国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - play for scala 實現SessionFilter 過濾未登錄用戶跳轉到登錄頁面

play for scala 實現SessionFilter 過濾未登錄用戶跳轉到登錄頁面

2020-07-07 13:22唐際忠 JAVA教程

這篇文章主要介紹了play for scala 實現SessionFilter 過濾未登錄用戶跳轉到登錄頁面的相關資料,需要的朋友可以參考下

一、編寫SessionFilter.scala代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package filters
import javax.inject.{Inject, Singleton}
import akka.stream.Materializer
import controllers.routes
import play.api.mvc.{Filter, RequestHeader, Result, Results}
import scala.concurrent.Future
@Singleton
class SessionFilter @Inject()(implicit val mat: Materializer) extends Filter {
 def apply(nextFilter: RequestHeader => Future[Result])
      (requestHeader: RequestHeader): Future[Result] = {
  if (!requestHeader.session.get("user").isDefined && !requestHeader.path.contains("/signin") && !requestHeader.path.contains("/assets/")) {
   Future.successful(Results.Redirect(routes.SignController.showSignin()))
  } else {
   nextFilter(requestHeader)
  }
 }
}

說明:

!requestHeader.session.get("user").isDefined 是用來判斷session中是否存在user

!requestHeader.path.contains("/signin") 是用來排除登錄頁面,這個頁面不登錄也應該是可見的,防止出現死循環跳轉

!requestHeader.path.contains("/assets/") 是用來排除靜態資源文件的,如圖片、css、JavaScript等

二、在app目錄下的Filters.scala中使用SessionFilter

Filters.scala這個文件是activator自動生成的模板,要使用SessionFilter只要在里面加上sessionFilter: SessionFilter和Seq(sessionFilter)就可以了

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import javax.inject._
import filters.{ExampleFilter, SessionFilter}
import play.api._
import play.api.http.HttpFilters
import play.api.mvc._
/**
 * This class configures filters that run on every request. This
 * class is queried by Play to get a list of filters.
 *
 * Play will automatically use filters from any class called
 * `Filters` that is placed the root package. You can load filters
 * from a different class by adding a `play.http.filters` setting to
 * the `application.conf` configuration file.
 *
 * @param env Basic environment settings for the current application.
 * @param exampleFilter A demonstration filter that adds a header to
 * each response.
 */
@Singleton
class Filters @Inject() (
 env: Environment,
 exampleFilter: ExampleFilter, sessionFilter: SessionFilter) extends HttpFilters {
 override val filters = {
  // Use the example filter if we're running development mode. If
  // we're running in production or test mode then don't use any
  // filters at all.
  if (env.mode == Mode.Dev) Seq(exampleFilter) else Seq.empty
  Seq(sessionFilter)
 }
}

以上所述是小編給大家介紹的play for scala 實現SessionFilter 過濾未登錄用戶跳轉到登錄頁面,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/tangjizhong/archive/2016/11/25/6100654.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中文字幕亚洲二区 | 亚洲成人一区在线 | 亚洲精品视频在线看 | 成人在线视频免费观看 | 自拍视频网站 | 中文在线视频 | 精品国产一区二区在线 | 国产一区二区在线免费观看 | 一区二区电影 | 成人亚洲视频 | 中文字幕国产在线视频 | 久久综合成人精品亚洲另类欧美 | 欧美专区在线 | 成人综合免费视频 | 国产日韩一区 | 国产精品亚洲精品 | 日韩在线观看视频一区二区三区 | 欧美一区二区三区久久久久久桃花 | 成人爽a毛片一区二区免费 久久久久亚洲精品 | 欧美激情一区二区三区 | 综合久久久久 | 国产精品成人一区二区三区夜夜夜 | 日本电影中文字幕 | h小视频在线 | 亚洲精品久久久 | 精品在线二区 | 亚洲精品在线看 | 亚洲国产中文字幕 | 久久成人人人人精品欧 | 啵啵羞羞影院 | 亚洲视频在线观看中文字幕 | 国产成人av网站 | 中文字幕免费视频 | 精品视频一区二区三区在线观看 | 欧美日韩精品在线播放 | 在线a人片免费观看视频 | 国产精品美女久久久久久久久久久 | 中文字幕欧美日韩 | 亚洲精选久久 | 亚洲情网站 | 日韩欧美专区 |