1. sectionfilter.scala 코드를 쓰십시오
Package Filtersimport Javax.inject. apply (nextFilter : requestHeader => future [result]) (requestHeader : requestHeader) : future [result] = {if (! requestheader.session.get ( "user")). isdefine &&! requestheader.path.contains ( "/signin") &&! requestheader.path.contains ( "/assets/") { future.successful (results.redirect (lours.signcontroller.showsignin ())} else {nextFilter (requestHeader)}}}설명 :
! requestheader.session.get ( "사용자"). isdefined는 세션에 사용자가 존재하는지 여부를 결정하는 데 사용됩니다.
! requestheader.path.contains ( "/signin")는 로그인 페이지를 제외하는 데 사용됩니다. 이 페이지는 로그인되지 않은 경우 데드 루프 점프를 방지하기 위해 표시되어야합니다.
! requestheader.path.contains ( "/assets/")는 그림, CSS, JavaScript 등과 같은 정적 리소스 파일을 제외하는 데 사용됩니다.
2. 앱 디렉토리의 Filters.scala에서 SessionFilter를 사용하십시오
Filters.scala 파일은 Activater에 의해 자동으로 생성 된 템플릿입니다. SessionFilter를 사용하려면 SessionFilter : SessionFilter 및 Seq (SessionFilter)를 추가하십시오.
import javax.inject._import 필터. {exampleFilter, SessionFilter} 가져 오기 play.api._import play.api.http.httpfiltersimport play.api.mvc ._/***이 클래스는 모든 요청에서 실행되는 필터를 구성합니다. 이 * 클래스는 필터 목록을 얻기 위해 Play로 쿼리됩니다. * * 플레이는 루트 패키지를 배치하는 *`필터 '라는 클래스의 필터를 자동으로 사용합니다. `play.http.filters` 설정을 *`application.conf` configuration 파일에 추가하여 다른 클래스에서 필터 *를로드 할 수 있습니다. * * * @param env 현재 응용 프로그램의 기본 환경 설정. * @param exampleFilter 각 응답에 헤더를 추가하는 데모 필터. */ @singletonclass filters @inject () (ENV : ENVERNE : exampleFilter : exampleFilter, SessionFilter : SessionFilter) 확장 httpFilters {Orederide val 필터 = {// 개발 모드를 실행중인 경우 필터를 사용합니다. // 제작 또는 테스트 모드에서 실행중인 경우 // 필터를 전혀 사용하지 않습니다. if (Env.Mode == mode.dev) seq (examplefilter) else seq.empty seq (sessionfilter)}}위의 것은 Scala가 SectionFilter 필터링을 구현하기 위해 Scala를 플레이하기 위해 소개 된 편집기입니다. 로그인하지 않은 사용자는 로그인 페이지로 점프합니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!