Ver Mensaje Individual
  #9 (permalink)  
Antiguo 20/05/2009, 10:00
Avatar de saman0suke
saman0suke
 
Fecha de Ingreso: abril-2009
Mensajes: 180
Antigüedad: 15 años
Puntos: 3
Respuesta: ¿Como restringir a un pagina JSP segun el nivel de usuario?

Cita:
Iniciado por drac94 Ver Mensaje
puedes poner todo el codigo del servlet completo
Este es el codigo completo:

Código:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
import java.sql.*;
import conexion.conexionbd;


public class login extends HttpServlet{

   public void doPost(HttpServletRequest request, HttpServletResponse response)
                                   throws ServletException,IOException{
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();

      String lognombre="";
      String logclave="";
      String strQuery= "";
      PreparedStatement instruccion=null;
      Connection con = conexionbd.getConexion();
      ResultSet resultado=null;
      HttpSession session = request.getSession(true);

      try {
        if(request.getParameter("NOMBRE")!=null &&
         request.getParameter("NOMBRE")!="" && request.getParameter("CLAVE")!=null &&
         request.getParameter("CLAVE")!="")
        {
        lognombre = request.getParameter("NOMBRE").toString();
        logclave = request.getParameter("CLAVE").toString();
        strQuery="select * from usuario where nombre='"+lognombre+"' and  clave='"+logclave+"'";
           System.out.println(strQuery);
          instruccion = con.prepareStatement(strQuery);
          resultado = instruccion.executeQuery(strQuery);
          int count=0;
          while(resultado.next())
          {

            session.setAttribute("nombre",resultado.getString(2));
            session.setAttribute("id_nivel",resultado.getInt(5));
            count++;
          }

                    if(count>0)
          {
            response.sendRedirect("../test.jsp");
          }
          else
          {
                       response.sendRedirect("../error.jsp");
          }


        }
        else
        {
           response.sendRedirect("../error.jsp");
        }

        System.out.println("Connected to the database");

        con.close();
        System.out.println("Disconnected from database");
      } catch (Exception e) {
      e.printStackTrace();
      }
  }
}
Cita:
Iniciado por goncafa Ver Mensaje
Primeroq ue nada comprueba que efectivamente estes pasando el nivel de usuario y no otra cosa, quiza la consulta no se ejecuta o estas obteniendo otro campo de la base de datos.

Seria puebo un:

Código PHP:
out.println("Nivel de usuario:" session.getAttribute("id_nivel")); 
de esta forma puedes validar que es lo que efectivamente viene por session.

Saludos
Gracias de nuevo por el consejo, efectivamente ejecute el out.println en la pagina principal.jsp para capturar nombre y id_nivel de esta manera:

Código:
<%
        out.println("Nombre:" + session.getAttribute("nombre"));
        out.println("Nivel de usuario:" + session.getAttribute("id_nivel"));
        %>
Y funciona! me muestra el nombre y id_nivel correspondiente al loguearme, no entiendo cual es el error porque la sesion esta recogiendo el id_nivel, algun consejo? dejo el Servlet completo con los import arriba, gracias de nuevo, un saludo :S