最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年11月25日 11:35:00   作者:唐際忠  
這篇文章主要介紹了play for scala 實現(xiàn)SessionFilter 過濾未登錄用戶跳轉(zhuǎn)到登錄頁面的相關(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)
  }
 }
}

說明:

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

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

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

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

Filters.scala這個文件是activator自動生成的模板,要使用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 實現(xiàn)SessionFilter 過濾未登錄用戶跳轉(zhuǎn)到登錄頁面,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • java高并發(fā)ScheduledThreadPoolExecutor類深度解析

    java高并發(fā)ScheduledThreadPoolExecutor類深度解析

    這篇文章主要為大家介紹了java高并發(fā)ScheduledThreadPoolExecutor類源碼深度解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • java應(yīng)用開發(fā)之JVM運行時內(nèi)存分析

    java應(yīng)用開發(fā)之JVM運行時內(nèi)存分析

    這篇文章主要介紹了java應(yīng)用開發(fā)之JVM運行時內(nèi)存,文中附含圖文示例內(nèi)容分析非常簡要,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • SpringBoot 集成JUnit5的詳細操作過程

    SpringBoot 集成JUnit5的詳細操作過程

    JUnit5是最新的Java單元測試框架,提供了靈活的測試支持,它由JUnit Platform、JUnit Jupiter和JUnit Vintage組成,支持不同環(huán)境下的測試運行,SpringBoot從2.2版本開始默認支持JUnit5,本文介紹了SpringBoot 集成JUnit5的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • Java 線程優(yōu)先級詳解及實例

    Java 線程優(yōu)先級詳解及實例

    這篇文章主要介紹了Java 線程優(yōu)先級詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • springMVC 用戶登錄權(quán)限驗證實現(xiàn)過程解析

    springMVC 用戶登錄權(quán)限驗證實現(xiàn)過程解析

    這篇文章主要介紹了springMVC 用戶登錄權(quán)限驗證實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Spring Boot 中啟用定時任務(wù)的操作方法

    Spring Boot 中啟用定時任務(wù)的操作方法

    文章主要介紹了如何在Spring Boot中啟用定時任務(wù),包括使用@EnableScheduling注解、配置項控制定時任務(wù)是否開啟以及如何關(guān)閉cron定時任務(wù),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • shrio中hashedCredentialsMatcher密碼匹配示例詳解

    shrio中hashedCredentialsMatcher密碼匹配示例詳解

    shrio是一個輕量級權(quán)限管理框架,密碼的匹配由框架內(nèi)部完成。密碼是否匹配由接口CredentialsMatcher定義實現(xiàn)類完成,CredentialsMatcher實現(xiàn)類有SimpleCredentialsMatcher和HashedCredentialsMatcher兩個
    2021-10-10
  • idea?intellij快速修復(fù)if語句缺少大括號的問題

    idea?intellij快速修復(fù)if語句缺少大括號的問題

    這篇文章主要介紹了idea?intellij快速修復(fù)if語句缺少大括號的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 解讀SpringBoot中addCorsMappings配置跨域與攔截器互斥問題的原因

    解讀SpringBoot中addCorsMappings配置跨域與攔截器互斥問題的原因

    這篇文章主要介紹了解讀SpringBoot中addCorsMappings配置跨域與攔截器互斥問題的原因,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • SpringSecurity概念及整合ssm框架的示例詳解

    SpringSecurity概念及整合ssm框架的示例詳解

    用戶登錄系統(tǒng)時我們協(xié)助?SpringSecurity?把用戶對應(yīng)的角色、權(quán)限組裝好,同時把各個資源所要求的權(quán)限信息設(shè)定好,剩下的“登錄驗證”、“權(quán)限驗證”等等工作都交給SpringSecurity,對SpringSecurity整合ssm框架相關(guān)知識感興趣的朋友跟隨小編一起看看吧
    2022-12-12

最新評論

白山市| 镇沅| 桃园市| 阳新县| 宣汉县| 乌鲁木齐市| 修武县| 淳安县| 济源市| 定南县| 绥棱县| 太湖县| 建湖县| 承德县| 长武县| 同心县| 绵竹市| 松溪县| 涡阳县| 青海省| 仁怀市| 永春县| 齐齐哈尔市| 乾安县| 洛隆县| 惠水县| 通许县| 奇台县| 栾川县| 都兰县| 南京市| 夹江县| 泰宁县| 梓潼县| 长白| 来宾市| 内丘县| 建始县| 伊宁县| 开原市| 天门市|