Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/11/2010, 12:22
RiNo_sKa
 
Fecha de Ingreso: mayo-2010
Mensajes: 20
Antigüedad: 14 años
Puntos: 0
Entrar Usuario sin logear de nuevo

Hola soy nuevo en esto de la programacion web y tengo un problema con JSF, tenemos una pagina principal que pide un usuario y contraseña, al ingresar un administrador puede ver un enlace a una pagina que pide ingresar de nuevo el usuario y contraseña

La idea es que ya no pida el usuario, si no q con la cookie generada al ingresar a la pagina principal ingrese a esa otra pagina, este es el codigo de la pagina de login.jsp

Código:
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ page language="java" import="javax.servlet.http.Cookie"%>

<HTML>
 <HEAD>
  <TITLE>
Generador de Cursos y Exámenes
</TITLE>
	<link rel="stylesheet" type="text/css" href="/SIRH_CognosGen/jquery/login/style.css" />
 </HEAD>

 <BODY>
<f:view>
<div align='center'>

<h:form>
<table>
		
		<tr><td><h:commandLink action='ir_candidatos'>Candidatos</h:commandLink></td></tr></table>
		<table>
			<tr><td colspan = "2"><h:outputText value="#{loginUser.msg}" style="color:red;"/></td></tr>
			
				<tr><td><h:inputText value="#{loginUser.user}"/></td></tr>
				<tr><td><h:outputText value="Usuario" /></td><td><h:inputText value="#{loginUser.user}" /></td></tr>
				<tr><td><h:outputText  value="Contraseña:" /></td><td><h:inputSecret value="#{loginUser.pass}" /></td></tr>
			<tr><td colspan = "2" align ='center'><br/><h:commandButton action="#{loginUser.CheckUser}" value='Ingresar'/></td></tr>

		</table>

</h:form>

</div>

</f:view>

</BODY> 
</HTML>
y la clase de java que hace el CheckUser tiene este codigo

Código:
public String CheckUser(){
	//public String CheckUser(String user){
		if ("CPCAQ00142".equals(getUser()) )
			//if ("Administrador".equals(getUser()) && "Administrador".equals(getPass()) )
			return "ir_admin";
		else if 	("Adminfiles".equals(getUser()) && "Adminfiles".equals(getPass()) )
		//else if 	("Adminfiles".equals(getUser()) && "Adminfiles".equals(getPass()) )
			return "adminfiles";
		else
		{
			setMsg("Usuario no permitido");
			return "";		
		}
			
	}
Yo intente agregarle esto a login.jsp

Código:
<%@page import="java.io.PrintWriter"%>
<%@page import="javax.faces.FacesException"%>
<%@page import="com.sun.xml.internal.ws.handler.HandlerException"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@page import="javax.servlet.http.Cookie" %>
<%@page import="javax.faces.context.FacesContext" %>
<%@page import="javax.faces.application.Application" %>
<%@page import="org.cpc.azt.com.dao.utilobject.DaoQuerys" %>
<%@page import="org.cpc.azt.com.sirh.beans.LoginUser" %>
<%@page import = "org.cpc.azt.com.sirh.util.*"%>

<% 
 
 HttpServletRequest requests = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
 //HttpSession sessionA = request.getSession();
 Cookie[] cookies = requests.getCookies();
 DaoQuerys dq = new DaoQuerys();
 LoginUser lg = new LoginUser();
 PrintWriter pw = response.getWriter();
 String user_id = "";
 String user = "";
 Boolean existeCookie = false;
 Boolean existeUsuario = false;
 FacesContext facesContext = FacesContext.getCurrentInstance();
int numCookies = 0;	
try
{
	numCookies = cookies.length;
}catch(NullPointerException e)
{
	numCookies = 0;
}
 if(numCookies>0){
	 for(int i = 0; i < numCookies; i++)
	 {	
	 			if(cookies[i].getName().equals(ConstantesVariables.COOKIE_NAME))
	 			{
	 				user_id = dq.PermisoAdmin(cookies[i].getValue());
	 				existeCookie = true;
	 				if(!user_id.equals("null")) existeUsuario = true;
	 				
	 			}
	 }
 }
 
 if(!existeCookie) 
 {
 	response.sendRedirect(no_user.jsp);
 	//RequestDispatcher view = request.getRequestDispatcher("http://www.google.com");
 	//view.forward(request,response);
	
 }
 else
 {
 	if(!existeUsuario) response.sendRedirect(no_user.jsp);
 	else
 	{
 	try{
	 	    facesContext = FacesContext.getCurrentInstance();
			LoginUser myBean=(LoginUser)facesContext.getApplication().getVariableResolver().resolveVariable(facesContext,"loginUser");
			myBean.setToken(user_id);
			myBean.setUser(user_id);			
			myBean.CheckUser();
 		}
 	catch(FacesException e){} 
	       RequestDispatcher view = request.getRequestDispatcher(header.jsp);
		   view.forward(request,response);
		  
 	
 	} 
 }
 
 %>
Y quitarle la parte de codigo HTML que tiene, el chiste es que al hacer esta modificacion si me envia a la otra pagina, pero ya los enlaces q estn dentro de la otra pgina no hacen nada, lo que entiendo es porque no retorna "ir_admin" de LoginUser, alguien sabe como hacerle???

Última edición por RiNo_sKa; 26/11/2010 a las 11:19