Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Java (Servlets y JSP) > manejo de sesiones
-Foros de debate

Java (Servlets y JSP)
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

manejo de sesiones
Enviado por ratxamala el día 19 de septiembre de 2005

Mi problema es el siguiente estoy trabajando con dos tipos de usuarios el administrador y el usuario comun despues de identificarse con el login y la contraseña van a diferentes paginas:
administrador->bienvenidoadmin.jsp
usuario->bienvenidouser.jsp
dentro de bienvenidoadmin.jsp existe un link a modificar.jsp privilegio que solo tiene el que se loguea como administrador; pero tengo un problema si me logueo como usuario y copio la url de modificar.jsp quedo como administrador; si abro el iexplorer y meto la url de modificar.jsp ovbiamente me redirecciona a la pagina de acceso negado. pero en el primer caso existe un error de seguridad; el codigo que coloco a continuacion es para un .class que funciona perfectamente y es para autorizar al usuario y me redirecciona segun el tipo de usuario por medio del dispacher. La segunda parte de codigo son las primeras lineas de modificar.jsp el cual es el que valida las sesiones para mi esta correcto pero no se porque no valida si es usuario o admin correctamente, cosa que necesito para poder solucionar el problema comentado... espero pronta ayuda... gracias...
__________________________________________________
PRIMERA PARTE: AutorizarUsuarioTrionix.java
__________________________________________________
package trionix;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class AutorizarUsuarioTrionix extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {

//Definición de variables necesarias
String login = request.getParameter("log");
String password = request.getParameter("pass");
request.setAttribute("URI", request.getRequestURI()); // Salva la URI en caso de necesitarse posteriormente

//Página redirigida si el password y/o login es incorrecto
RequestDispatcher dispatcher1 = getServletContext().getRequestDispatcher("/trionix/error.jsp?message=INGRESO_INVALIDO");

//Página redirigida si el usuario es administrador
RequestDispatcher dispatcher2 = getServletContext().getRequestDispatcher("/trionix/Bienvenido.jsp");

//Página redirigida si el usuario es usuario
RequestDispatcher dispatcher3 = getServletContext().getRequestDispatcher("/trionix/Bienvenidouser.jsp");

response.setContentType("text/html");
PrintWriter out = response.getWriter();

UsuarioTrionix user = new UsuarioTrionix();
//Integer coduser = new Integer(user.validarUsuario(login, password));
String coduser = user.validarUsuario(login, password);

if (!coduser.equals("")) {

String rol = user.getTipousuario();

String log = user.getLogin();


if (rol.equals("usuar"))
{

HttpSession sesion = request.getSession(true);
sesion.setAttribute("Codusuario", coduser);
sesion.setAttribute("Rol", rol);
sesion.setAttribute("Log",log);

dispatcher3.forward(request,response);

}
else
{
HttpSession sesion = request.getSession(true);
sesion.setAttribute("Codusuario", coduser);
sesion.setAttribute("Rol", rol);
sesion.setAttribute("Log",log);

dispatcher2.forward(request,response);
}

}//end if
else {
dispatcher1.forward(request,response);
}//end else


}// end doPost()


public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{

doPost(request, response);
}

}//end servlet
__________________________________________________
SEGUNDA PARTE: Modificar.jsp
__________________________________________________
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<% HttpSession sesion = request.getSession(true);//asi le coloque true or false me da el mismo resultado
Object lo= session.getAttribute("Log");
Object ti= session.getAttribute("Rol");
//funciona bien
if (lo==null){
response.sendRedirect("nologin.jsp?message=VIOLACION DE ACCESO");
}
//aqui empieza el problema parece que nunca pasara por aca
if (ti=="usuar"){
response.sendRedirect("noadmin.jsp?message=VIOLACION DE ACCESO");
}
%>

<%=session.getAttribute("Log")%>
<%=session.getAttribute("Rol")%>

 
Re: manejo de sesiones
Enviado por aloneibar el día 20 de septiembre de 2005

En Modificar jsp. Estás en java, por lo que debería poner if (lo.equals(null)) y if (ti.equals(\"usuar\")). ¿De todas formas qué valores te visualiza en Log y Rol yendo directamente a esta página?

 
Re: Re: manejo de sesiones
Enviado por ratxamala el día 20 de septiembre de 2005

excellente respuesta, cambie los if de forma en que me dijo y todo funciona pero persiste el problema de fondo...
si entro como usuario llego a bienvenidouser.jsp, pego la url de modificar.jsp 'http://localhost:8080/practicas/trionix/Modificar.jsp' y me redirecciona correctamente a acceso no valido.
Ahora entro como administrador llego a la pagina bienvenidoadmin.jsp en ella hay un link a modificar.jsp
y me deja pasar a esta pagina, 'copio la url' dentro de modificar.jsp tengo un link a cerrar sesion el cual me llama a la pagina cerrar.jsp la cual el unico contenido que tiene en el body es el siguiente:

<%session.invalidate();
response.sendRedirect("index.jsp");
%>

y me redirecciona a el index, entonces me logueo como usuario comun llego a bienvenidouser.jsp y pego la url en la barra de direcciones y quedo como administrador. Ese es el problema de seguridad que tengo, lo mismo pasa si estoy logueado como administrador llego a modificar.jsp copio la url y le doy atras-atras hasta llegar al index ne logueo como usuario pego la url y otra vez quedo con opciones de administrador...

espero pronta ayuda...

 
Re: Re: Re: manejo de sesiones
Enviado por Drocher el día 20 de septiembre de 2005

Prueba a insertar el siguiente código en el inicio de todos tus jsps:

<%
//Evita el \"Caching\" en el servidor Proxy
response.setHeader(\"Cache-Control\",\"no-store\"); //HTTP 1.0
response.setHeader(\"Pragma\",\"no-cache\"); //HTTP 1.1
response.setDateHeader(\"Expires\",0);
%>

Ya que puede ser que el error se deba a la cache.

Espero te sea útil, un saludo

Denis

 
Re: Re: Re: Re: manejo de sesiones
Enviado por ratxamala el día 21 de septiembre de 2005

Excelente solucion, el problema ha sido resuelto, pero para que lo reconociera tuve que quitarle todos los backslash...

muchisimas gracias
aloneibar y Drocher

 
Re: Re: Re: Re: Re: manejo de sesiones
Enviado por Drocher el día 21 de septiembre de 2005

Me alegro por tí, los backslash se han insertado automaticamente cuando puse el código en mi mensaje, se me olvido comentarlo.

Un saludo

 
Re: Re: Re: Re: Re: Re: manejo de sesiones
Enviado por victor el día 1 de octubre de 2005

Me puedes enviar la clase UsuarioTrionix
para enteder tu codigo

 
Re: Re: Re: Re: Re: Re: Re: manejo de sesiones
Enviado por zextor el día 21 de noviembre de 2005

si no es mucha la molestia a mi tambien me podrias enviar la clase UsuarioTronix para estudiarla y aprender mas ya que recien me estoy iniciando... bueno muchas gracias mi e-mail es:

zextor@gmail.com

 
Re: Re: Re: Re: Re: Re: Re: Re: manejo de sesiones
Enviado por lara el día 6 de abril de 2006

ASEO

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: manejo de sesiones
Enviado por jogafree el día 10 de abril de 2006

Me alegra que el problema halla sido solucionado, actualmente estoy terminando una aplicaión en JAVA y me falta construir el modulo de seguridad y sesiones, le agradeceria si mi pudiera enviar las clases y los jsp nesesarios de seguridad y sesiones para analizarlos y hacer el modulo de seguridad

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: manejo de sesiones
Enviado por CH el día 20 de abril de 2006

Tu me puedes enviar los archivos tambien
muchas Gracias

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: manejo de sesiones
Enviado por andres el día 29 de junio de 2006

Hola!

Yo tambien me estoy iniciando, seria bueno que me enviaras los archivos que tu tienes para el manejo de sesiones.

Gracias!

 












Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network