Olá, neste tutorial continuaremos com a implementação do filter de autenticação de usuário, até o momento já conseguimos reconhecer se o usuário está logado ou não, e fazer o devido redirecionamento. Isto é, se estiver logado ele poderá continuar acessando qualquer página do sistema. Entretanto, se não estiver logado, o mesmo deverá ser redirecionado para a tela de login.

Então agora vamos ajustar criando um formulário simples de acesso, para que de fato possamos validar o login e senha. Assim, na página autenticar.jsp implementaremos o formulário utilizando uma tabela para melhor estruturá-lo.

Ainda implementaremos mais uma linha para o botão que após ser clicado enviará o formulário para submissão. O type do botão será submit, atribua “logar” para o id e o name e também o valor (value). E no atributo action, onde é especificado para onde os dados do formulário deverão ser enviados informaremos a servlet “ServletAutenticacao”. E o método de envio do formulário será post.

Como já é do seu conhecimento, o post é um método para enviar dados para o servidor, onde estes dados são armazenados no corpo da solicitação HTTP, isto, escondidos da url.

SERVLET DE AUTENTICAÇÃO

Precisamos agora criar uma servlet de autenticação do usuário, isto é, para receber os dados do formulário e proceder com a validação permitindo ou não o acesso ao sistema.

O primeiro passo é criação de um package para receber o servlet, sempre com o objetivo de manter o a estrutura do projeto organizado. E dentro deste pacote crie uma servlet cujo Class name será ServletAutenticacao.

Com o servlet criado apague todos os comentários, isso facilitará a leitura do código. E note, o método de envio do formulário é o POST, assim, trabalharemos na servlet com o método doPost.

Dessa forma dentro do método doPost a primeira providência é capturar os dados de login e senha do usuário.

String login = request.getParameter(“login”);
String senha = request.getParameter("senha");

A validação será feita por meio da estrutura de decisão if/else, assim se usuário for igual a admin e senha igual “123”, o acesso ao sistema estará liberado. Mas se não, ele será redirecionado para a tela de login.

E para os redirecionamentos utilizaremos o RequestDispatcher que cumpre o objetivo de encaminhar a requisição atual para outro recurso, no caso de falha da validação para a tela de autenticação.

Mas no caso de validação efetuada com sucesso, o acesso ao sistema será liberado, ou seja, iremos redirecionar o usuário para a página acessoAoSistema.

COLOCANDO USUÁRIO NA SESSÃO

Mas antes é preciso colocar o usuário na sessão, visto que o filter fará esta verificação, e se o usuário não estiver na sessão o acesso será negado. E para o colocar o usuário em sessão, é preciso primeiro instanciar o objeto usuarioLogado e atribuir (“setar”) login e senha a ele.

E então por meio da session, setaremos os atributos, cuja chave é o usuário, e o valor usuarioLogado. Esta chave foi buscada no filtro de autenticação, a classe FilterAutenticacao.

EM POUCAS PALAVRAS

Agora sim com um simples formulário de autenticação implementado conseguimos um cenário mais realista, e condizente com o mundo real. Testando a aplicação você verá que não estando em sessão e com dados não validados o usuário não conseguirá avançar para além da tela de login. Mas podemos melhorar ainda mais nosso filter, assim, eu fico por aqui e nos vemos no próximo tutorial.