30/06/2011, 08:51
|
| | Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 16 años, 3 meses Puntos: 0 | |
Problema Login MD5 con Servlet Hola!
Estoy intentando loguearme con un servlet pero al ejecutar mi código no me sale nada en la pantalla y no entiendo por qué.
Tengo un pequeño formulario en el que hay que meter el dni y contraseña.
Lo he metido también en el xml.
Por favor, que alguien me ayude ;(
Código:
<script type="text/javascript" src="MD5.js"> </script>
<form action="Login" method="post">
<table width="545" height="206" border="0" align="center" bgcolor="#FFFF66">
<tr>
<td height="40" colspan="2" align="center" valign="middle" bgcolor="#FF0000" class="Pestanas">CONFIRMA QUE ERES EL ADMINISTRADOR INTRODUCIENDO LOS DATOS</td>
</tr>
<tr>
<td height="2" colspan="2" align="right" bgcolor="#FF0000"><img src="imagenes/transparent-wedge.gif" width="100%" height="2" /></td>
</tr>
<tr>
<td width="196" align="right" bgcolor="#FFFF66" class="Nota"><span class="tituloRegistro Estilo13">DNI *</span></td>
<td width="564" align="left" valign="middle" bgcolor="#FFFF66"><label for="textfield"></label>
<input name="dniAdmin" type="text" id="dniAdmin" size="9" maxlength="9" /></td>
</tr>
<tr>
<td align="right" bgcolor="#FFFF66" class="Nota">CONTRASEÑA *</td>
<td align="left" valign="middle" bgcolor="#FFFF66"><label for="textfield"></label>
<input name="contrasena" type="password" id="contrasena" size="30" /></td>
</tr>
<tr>
<td height="40" colspan="2" align="center" valign="bottom">
<input name="EnviarForm" type="submit" class="TextoNormal" id="EnviarForm" value="Enviar" />
<input name="LimpiarForm" type="reset" class="TextoNormal" id="label" value="Limpiar formulario" /></td>
</tr>
</table>
</form>
Login.java
Código:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.sql.*;
public class Login extends HttpServlet {
private String dni, pass, //En pass se guarda la que ingreso el usuario
AttNombre ="", AttAppe ="", //Para guardar los datos que nos regrese la BD
SQLEx = "", EX = "";
public Integer Error=null; //Los errores que podamos tener
private Boolean lectorBD(String Dni, String Pass){
Boolean estado = false;
try{
String MySQLDriver ="com.mysql.jdbc.Driver",
DriGetConn = "jdbc:mysql://localhost:3306/proyectocasarural",
//El nombre de usuario y la contraseña para entrar a BD
userBD = "root", passBD ="",
passMD5="";
Class.forName(MySQLDriver);
Connection conexion = DriverManager.getConnection
(DriGetConn, userBD, passBD);
Statement query = conexion.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = query.executeQuery("SELECT nombre, apellido FROM administrador WHERE dni='" + Dni +"' AND contrasena='" + Pass +"'");
rs.first();
passMD5 = rs.getString("contrasena");
if(this.passMatch(passMD5, Pass)){
this.AttNombre = rs.getString("Nombre");
this.AttAppe = rs.getString("Apellidos");
rs.close();
estado = true;
}else {
this.Error = 3;
}
query.close(); conexion.close();
}catch(SQLException ex){
this.SQLEx = "Se produjo una excepción durante la conexión: "+ ex.toString();
this.Error = 4;
}catch(Exception ex){
this.EX = "Se produjo una excepción: "+ ex.toString();
this.Error = 5;
}
return estado;
}
private Boolean passMatch(String passMD5, String pass){
if(this.pass.equals(passMD5)){
return true;
}else{
return false;
}
}
private boolean validar(String parDni, String parPass){
Boolean estado = false;
String falta = null;
String num = parDni.substring(0,8);
String let = parDni.substring(8,9);
Integer numero = Integer.parseInt(num);
numero = numero % 23;
String letra="TRWAGMYFPDXBNJZSQVHLCKET";
letra=letra.substring(numero,numero+1);
if (letra==let) {
if (!parPass.isEmpty()){
estado = true;
this.dni = parDni;
this.pass = parPass;
this.lectorBD(dni, pass);
}else{ falta="Tiene que escribir su contraseña";}
}else{falta="Dni erroneo";}
return estado;
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Boolean estado;
String URL = "/ConectaBD/postLog.jsp";
estado= this.validar(request.getParameter("dni"), request.getParameter("contasena"));
HttpSession sesion = request.getSession(true);
if(estado){
sesion.setAttribute("nombre", this.AttNombre);
sesion.setAttribute("ape", this.AttAppe);
}else{
URL = URL + "?error=" + this.Error;
}
response.sendRedirect(response.encodeURL(URL) );
}
}
|