Como bloquear a senha depois de 3 tentativas no java(netbeans)? e tbm pra alterar depois e deixar o usuario ativo? estou usando o acess pois na faculdade só pode esse banco rs

3 respostas
Danilo_Silva1
int Usuario = Integer.parseInt(jTextField1.getText());

char[] Senha = jPasswordField1.getPassword();

String strSenha = new String(Senha);
ResultSet RS= stmt.executeQuery("Select * from Tabela_Estoque where Usuario='" + Usuario + "'" );
        
        boolean Consulta = false;
        
            while (RS.next())
            {
                Consulta = true;
                
                if (strSenha.equals(RS.getString("Senha")))
                {
                    new Menu_Atividade().setVisible(true); 
                }
	    else  
	    {  
		showMessageDialog(this, "Senha Inválida ");
	    }
                  
            }
        
            if ( Consulta == false )
               showMessageDialog(this, "Registro não encontrado");

3 Respostas

Mike

Cria um atributo que será como um contador, toda vez que errar a senha, incrementa em um.

Na hora do login, você pega o valor no banco, se for 3, diz que o acesso ta bloqueado.

Danilo_Silva1

Sim! o problema é codificar, não estou tendo lógica para isso rs. Como sou novo na área tenho muitas duvidas.

Mike

Se você quiser negar o acesso quando o usuário errar 3 vezes consecutivs, você pode fazer algo mais ou menos assim:

if(contador == 3){
    classeDAO.alterarAcesso(classe.getId(), false);
}
public void alterarAcesso(int id, boolean acesso) throws SQLException
	{
		try(Connection conn = DriverManager.getConnection(url, "root", "senha"))
		{
			try(PreparedStatement stmt = conn.prepareStatement("UPDATE FUNCIONARIO SET ACESSO = ? WHERE ID = ?"))
			{
				stmt.setBoolean(1, acesso);
				stmt.setInt(2, id);
				
				stmt.executeUpdate();
			}
		}
	}

Você pode remover os trys acima para facilitar o entendimento, caso não saiba para o que serve.

Esses trys são chamado de try-with-resources caso queira procurar na net.

Criado 24 de outubro de 2017
Ultima resposta 25 de out. de 2017
Respostas 3
Participantes 2