Desenvolvimento - Java
NetBeans IDE: Visual Web Pack - parte 4 - Criando a query e verificando o usuário
Nesta etapa, criaremos a query que será utilizada para verificar se o login utilizado pertence a um usuário da área administrativa da aplicação, passando pela verificação da senha, liberando a entrada no sistema.
por Edson GonçalvesOlá PessoALL,
Nesta etapa, criaremos a query que será utilizada para verificar se o login utilizado pertence a um usuário da área administrativa da aplicação, passando pela verificação da senha, liberando a entrada no sistema. Em seguida adicionaremos código ao botão Logar para que o usuário possa entrar na área administrativa.
Criando a query para verificar o usuário e senha
Para compreender o que iremos desenvolver, observem a Figura a seguir e siga os três passos:
1 - Com a página Page1.jsp aberta, arraste da janela Execução a tabela usuarios para o Design.
2 – Observem que na janela Esboço surgirá um componente chamado de usuariosDataProvider.
3 – Dentro de SessionBean1 aparecerá um componente chamado de usuariosRowSet, contendo uma query da tabela usuarios.
Figura 1
Agora que a classe SessionBean1 possui acesso ao banco de dados e a tabela usuarios, iremos alterá-la para que um usuário possa ser selecionado. Em usuariosRowSet, na janela Esboço, vamos dar um duplo clique.
Ao surgir a janela Query Editor, no segundo quadro, na estrutura da tabela usuarios, clique com o direito do mouse sobre a linha da coluna login e selecione no menu de contexto o item Adicionar critérios de consulta.
Figura 2
Na caixa de diálogo Adicionar critérios de consulta, mantenha em Comparação o item “=Iguais” e marque Parâmetro, mantendo da forma como está. Confirme.
Figura 3
Observe que um critério será adicionado, onde o parâmetro de entrada é representado pelo sinal de interrogação “?”. Deixaremos as explicações técnicas quanto ao que está ocorrendo para outra oportunidade. O importante é que agora temos a query como precisamos para verificar o login e a senha.
Figura 4
IMPORTANTE: Quando estivermos utilizando o Visual Web Pack com o Apache Tomcat embutido, adicione o driver JDBC do seu banco de dados, no caso do MySQL no seguinte local da instalação do NetBeans:
$LOCAL_INSTALADO/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib
Adicionando código ao botão Logar
Primeiramente vamos adicionar o código necessário para logar o sistema. Na Page1.jsp, na área de login, comecem com um duplo clique no botão Logar.
Observem que o Visual Web Pack já adiciona um método público de retorno String, contendo inclusive a string “logado” colocada na navegação.
Vamos adicionar o código mostrado a seguir para que ao clicar no botão, o usuário e a senha sejam verificados pelo banco de dados, retornando ou não o acesso a área administrativa.
public String button1_action() {
try {
//captura o login passado pelo campo usuario
getSessionBean1().getUsuariosRowSet().
setObject(1,usuario.getText());
//reinicia o Data Provider
//apagando dados cacheados anteriores
usuariosDataProvider.refresh();
//verifica se a senha está correta, evitando SQL Injection
if(senha.getText().equals((String) usuariosDataProvider.getValue("usuarios.password"))){
//captura a sessão do contexto criado
//pelo JavaServer Faces do VWP
FacesContext fc = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession)fc.getExternalContext().getSession(false);
//cria uma sessão contendo o nome de usuario chamada logado
session.setAttribute("logado", usuario.getText() );
//redireciona para a área administrativa
return "logado";
}
} catch (Exception ex) {
//exibe a mensagem de login ou senha inválidos
error("Login ou senha inválidos");
}
return "";
}
Este código funciona perfeitamente, e em um teste você pode “logar” no sistema. O problema maior está nas áreas administrativas, que exigem uma segurança maior. Quando você está dentro da área administrativa, o navegador vai armazenando os endereços das páginas na barra de endereços. Qualquer pessoa depois, poderá acessar estas áreas sem a necessidade de logar, simplesmente acessando a área através do seu endereço direto.
Na quinta e última parte do artigo iremos criar um Filtro com a API Servlet, evitando tal situação.
Bons códigos e até lá.