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