1. Escreva o código sessionfilter.scala
Filtersimport pacote javax.inject. {injeção, singleton} importar akka.stream.materializerImport controllers.Routesimport play.api.mvc. {filtro, requestheader, resultado, resultados} importar scala.concurrent.future@matrsingleToNS SessionSfilter @InInject (filmingfrinft {) (stratfl) scratefs (scratefrinftr (scratefsl) (standFilTerftring) (standFilTerftring) (standFilTerftring) (standFilTerftring) (standFilter) (shilting) scratefil (standFilTerft {Results}}} importa scala. RequestHeader => FUTURO [Resultado]) (Requestader: requestHeader): futuro [resultado] = {if (! Requestheader.session.get ("user"). IsDefine &&! Requestheader.path.contains ("signin") &&! Futura.successful (resultados.redirect (rotas.signcontroller.showsignin ()))} else {nextFilter (requestReader)}}}ilustrar:
! requestheader.session.get ("Usuário"). IsDefined é usado para determinar se um usuário existe na sessão
! RequestPrear.Path.Contains ("/Signin") é usado para excluir a página de login. Esta página deve ser visível se não estiver conectada, para evitar um salto de loop morto.
! requestheader.path.contains ("/Assets/") é usado para excluir arquivos de recursos estáticos, como imagens, css, javascript, etc.
2. Use sessionFilter em filters.scala no diretório de aplicativos
O arquivo filters.scala é um modelo gerado automaticamente pelo ativador. Para usar o SessionFilter, basta adicionar sessionfilter: sessionfilter e seq (sessionfilter) a ele.
Importar javax.inject._import filtros. {Exemplofilter, sessionFilter} importar play.api._import play.api.http.httpfiltersimport play.api.mvc ._/*** Esta classe configura filtros que executam em todas as solicitações. Esta classe * é consultada por jogo para obter uma lista de filtros. * * A reprodução usará automaticamente os filtros de qualquer classe chamada * `filtros` que seja colocada o pacote raiz. Você pode carregar filtros * de uma classe diferente adicionando uma configuração `play.http.filters` para * o arquivo de configuração` Application.conf`. * * @param Env Basic Environment Configurações para o aplicativo atual. * @Param ExpletFilter Um filtro de demonstração que adiciona um cabeçalho a * cada resposta. */ @SingleTonClass Filters @Inject () (Env: Ambiente, Exemplofilter: ExpletFilter, SessionFilter: SessionFilter) Estende Httpfilters {Substituir Val Filters = {// Use o filtro de exemplo se estivermos executando o modo de desenvolvimento. Se // estamos em execução no modo de produção ou teste, não use nenhum // filtros. if (Env.mode == mode.dev) seq (exemplofilter) else seq.empty seq (sessionfilter)}}O acima é o editor introduzido para reproduzir para o Scala para implementar a filtragem do Filter Session. Usuários que não fizeram login no salto para a página de login. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!