Boa Tarde,
Pessoal estou fazendo os execícios da Apostila Fj-21 da Caelum.
Estou na parte que pedem para criar uma pagina de Login, já criei a tabela no banco como um usuário e senha.
Mais a autenticação não está sendo feita de forma correta.
Segue o meu select:
public boolean usuarioExiste(Usuario usuario){
List<Usuario> usuarios = new ArrayList<>();
String sql = "select * from usuarios where login='"+usuario.getLogin()+"' and senha='"+usuario.getSenha()+"'";
try {
stmt = connection.prepareStatement(sql);
rs = stmt.executeQuery();
while(rs.next()){
Usuario user = new Usuario();
user.setLogin(rs.getString("login"));
user.setSenha(rs.getString("senha"));
usuarios.add(user);
}
stmt.close();
rs.close();
return true;
} catch (SQLException e) {
return false;
}
}
Está correto verificar dessa forma?
Fiz o debug e os valores login e senha está sendo passados normalmente do formulário.
Aqui é onde executa o método da DAO, só que se eu digitar qualquer coisa no formulário login e senha ele aceita e redireciona para o menu.
@RequestMapping("efetuaLogin")
public String efetuaLogin(Usuario usuario, HttpSession session) {
if(new UsuarioDao().usuarioExiste(usuario)) {
session.setAttribute("usuarioLogado", usuario);
return "menu";
}else{
return "redirect:loginForm";
}
}