miércoles, 4 de julio de 2012

Validar clave de acceso en adempiere

ALogin.java


public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals(ConfirmPanel.A_OK))
{
// Set Default Database Connection from Ini
DB.setDBTarget(CConnection.get(Adempiere.getCodeBaseHost()));

if(this.Clave_Caducada() == true)
{
RenovarClave();
}
....
}
}


public boolean Clave_Caducada()
{
/*
Verifica si es la clave por defecto.
Si es la clave por defecto entonces será una clave caducada
de lo contrario será una clave activa
*/

Boolean b = false; // Clave Activa

if(ObtenerClave().equals("123"))
b = true;

return b;
}



public String ObtenerClave()
{
/*
Este metodo obtiene la clave del usuario
*/

String clave = "";

ResultSet rs = null;
PreparedStatement ps = null;

String sql = "SELECT u.password FROM ad_user u" + 
" WHERE u.ad_client_id = 1000000 " + 
" AND u.name = '" + this.userTextField.getText() + "'";

try
{
ps = DB.prepareStatement(sql, null);
rs = ps.executeQuery();

while(rs.next())
{
clave = rs.getString(1);
}

DB.close(rs, ps);
rs = null;
ps = null;
}
catch(SQLException e)
{
log.log(Level.SEVERE, sql, e);
}
finally
{
DB.close(rs, ps);
rs = null;
ps = null;
}

return clave;
}




@SuppressWarnings("deprecation")
private void RenovarClave()
{
String clave = "";

JPasswordField nueva_clave = new JPasswordField();

nueva_clave.setEchoChar('*');

Object[] obj = {"Su clave ha caducado, por favor ingrese su nueva clave: \n\n", nueva_clave};

Object stringArray[] = {"OK", "Cancel"};

do
{
if(JOptionPane.showOptionDialog(null, obj, "Renovar contraseña",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, stringArray, obj) ==  JOptionPane.YES_OPTION)
clave = String.valueOf(nueva_clave.getPassword());
}
while(String.valueOf(nueva_clave.getPassword()).equals(null) || String.valueOf(nueva_clave.getPassword()).equals(""));

if(clave.equals(String.valueOf(this.passwordField.getPassword())))
{
JOptionPane.showMessageDialog(null, "La nueva clave no puede ser igual a la anterior, intente de nuevo", "Error", JOptionPane.ERROR_MESSAGE);
RenovarClave();
}

String sql = "UPDATE ad_user SET password = '" + clave + 
"' WHERE name = '" + this.userTextField.getText() + 
"' AND password = '" + String.valueOf(this.passwordField.getPassword()) + "'";
try
{
DB.executeUpdate(sql);
this.passwordField.setText(clave);
JOptionPane.showMessageDialog(null, "La clave se ha cambiado satisfactoriamente", "Cambio éxitoso", JOptionPane.INFORMATION_MESSAGE);
}
catch(Exception e)
{
log.log(Level.SEVERE, sql, e);
}
finally
{
}
}




No hay comentarios:

Publicar un comentario