亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

play for scala 實(shí)現(xiàn)SessionFilter 過(guò)濾未登錄用戶跳轉(zhuǎn)到登錄頁(yè)面

 更新時(shí)間:2016年11月25日 11:35:00   作者:唐際忠  
這篇文章主要介紹了play for scala 實(shí)現(xiàn)SessionFilter 過(guò)濾未登錄用戶跳轉(zhuǎn)到登錄頁(yè)面的相關(guān)資料,需要的朋友可以參考下

一、編寫SessionFilter.scala代碼

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)
  }
 }
}

說(shuō)明:

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

!requestHeader.path.contains("/signin") 是用來(lái)排除登錄頁(yè)面,這個(gè)頁(yè)面不登錄也應(yīng)該是可見(jiàn)的,防止出現(xiàn)死循環(huán)跳轉(zhuǎn)

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

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

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

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 實(shí)現(xiàn)SessionFilter 過(guò)濾未登錄用戶跳轉(zhuǎn)到登錄頁(yè)面,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java獲取當(dāng)前操作系統(tǒng)的信息實(shí)例代碼

    Java獲取當(dāng)前操作系統(tǒng)的信息實(shí)例代碼

    這篇文章主要介紹了Java獲取當(dāng)前操作系統(tǒng)的信息實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Java方法遞歸調(diào)用實(shí)例解析

    Java方法遞歸調(diào)用實(shí)例解析

    這篇文章主要介紹了Java方法遞歸調(diào)用實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Java使用FTPClient類讀寫FTP

    Java使用FTPClient類讀寫FTP

    這篇文章主要為大家詳細(xì)介紹了Java使用FTPClient類讀寫FTP的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 基于idea把maven工程轉(zhuǎn)換為web項(xiàng)目

    基于idea把maven工程轉(zhuǎn)換為web項(xiàng)目

    這篇文章主要介紹了基于idea把maven工程轉(zhuǎn)換為web項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Spring?Boot日志基礎(chǔ)使用之如何設(shè)置日志級(jí)別

    Spring?Boot日志基礎(chǔ)使用之如何設(shè)置日志級(jí)別

    這篇文章主要介紹了Spring?Boot日志基礎(chǔ)使用設(shè)置日志級(jí)別的方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • 使用Java將一個(gè)List運(yùn)用遞歸轉(zhuǎn)成樹(shù)形結(jié)構(gòu)案例

    使用Java將一個(gè)List運(yùn)用遞歸轉(zhuǎn)成樹(shù)形結(jié)構(gòu)案例

    這篇文章主要介紹了使用Java將一個(gè)List運(yùn)用遞歸轉(zhuǎn)成樹(shù)形結(jié)構(gòu)案例,本文通過(guò)詳細(xì)的案例來(lái)解釋說(shuō)明了如何去操作,需要的朋友可以參考下
    2021-06-06
  • spring-boot-maven-plugin?配置有啥用

    spring-boot-maven-plugin?配置有啥用

    這篇文章主要介紹了spring-boot-maven-plugin?配置是干啥的,這個(gè)是SpringBoot的Maven插件,主要用來(lái)打包的,通常打包成jar或者war文件,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • java8 stream sort自定義復(fù)雜排序案例

    java8 stream sort自定義復(fù)雜排序案例

    這篇文章主要介紹了java8 stream sort自定義復(fù)雜排序案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Java 生成隨機(jī)字符串?dāng)?shù)組的實(shí)例詳解

    Java 生成隨機(jī)字符串?dāng)?shù)組的實(shí)例詳解

    這篇文章主要介紹了Java 生成隨機(jī)字符串?dāng)?shù)組的實(shí)例詳解的相關(guān)資料,主要是利用Collections.sort()方法對(duì)泛型為String的List 進(jìn)行排序,需要的朋友可以參考下
    2017-08-08
  • Java并發(fā)編程深入理解之Synchronized的使用及底層原理詳解 下

    Java并發(fā)編程深入理解之Synchronized的使用及底層原理詳解 下

    在并發(fā)編程中存在線程安全問(wèn)題,主要原因有:1.存在共享數(shù)據(jù) 2.多線程共同操作共享數(shù)據(jù)。關(guān)鍵字synchronized可以保證在同一時(shí)刻,只有一個(gè)線程可以執(zhí)行某個(gè)方法或某個(gè)代碼塊,同時(shí)synchronized可以保證一個(gè)線程的變化可見(jiàn)(可見(jiàn)性),即可以代替volatile
    2021-09-09

最新評(píng)論