Tutorial Mentawai #3 – Autenticação

Olá pessoal! Tudo certo?

No último post sobre o Mentawai, tivemos uma visão geral sobre Filtros, que basicamente são ações executadas sobre o conteúdo da input ou output, antes ou depois da execução de uma Action. A partir do uso de filtros giram praticamente todas as funcionalidades do framework.

No tutorial de hoje, vamos ver como funciona o controle de autenticação no Mentawai. A autenticação consiste em evitar o acesso de usuários não autenticados (que não realizaram um login, por exemplo). Vocês verão que este processo de controle é extremamente simples de se fazer com o Mentawai.

Primeiramente, precisamos criar uma action de login. Em vez de estender BaseAction, esta action deve estender BaseLoginAction.

O lance dessa action é o método setUserSession() que deve ser chamado para iniciar a sessão de um usuário. Usuários sem uma sessão criada serão bloqueados pelo AuthenticationFilter que veremos logo a seguir.

Agora, precisamos adicionar um filtro no ApplicationManager que definirá opções de redirecionamento e alguns detalhes a mais:

Perceba que adicionamos um filtro global, o AuthenticationFilter. É ele o responsável por tratar o bloqueio das páginas por usuários não autenticados. Além disso definimos uma consequência global, indicando para onde o usuário será redirecionado caso tente acessar alguma página protegida sem estar autenticado (no caso, redirecionamos para a página de login).

Além disso, configuramos a action de Login, definindo um redirecionamento para a home (login com sucesso) ou pra páginda de login (login sem sucesso). E qual a diferença entre o Redirect e o Forward? Enquanto o Redirect simplesmente redireciona para outra página ou action, o Forward redireciona mantendo os dados na saída, realizando um processamento prévio da página. Ele é útil, por exemplo, para exibirmos mensagens de aviso ao usuário (coisa que veremos em muito breve!).

Continuando nosso tutorial, assim como implementamos o login, precisamos implementar o Logout. Como o logout realiza praticamente a mesma tarefa em todas as aplicações, o Mentawai já fornece uma implementação pronta que pode ser utilizada. Caso você tenha dados específicos que necessitem tratamento, você pode criar a sua implementação, tomando como base o exemplo da documentação oficial. Então, basta configurarmos no ApplicationManager.

Ok… já vimos como funciona toda essa parte de configuração… mas como eu projeto a minha página? Através de uma única tag!

Na configuração atual que temos, caso o usuário tente acessar uma página protegida, ele será redirecionado para a página de login e, caso o login seja realizado com sucesso, ele é redirecionado para a home. Em alguns casos, seria interessante que, após o login, ele fosse redirecionado de volta para a página que estava tentando acessar. Para isso, podemos adicionar um filtro na configuração da action de login para fazer esse trabalho pra gente.

E depois, basta adicionar  a opção redir=”true” na tag mtw:requiresAuthentication.

Então… é isso pessoal! No próximo tutorial, veremos como implementar um sistema de autorização com o Mentawai. Até lá! 😀