Problemas com Sistema de Login e Redirecionamento de Páginas

0 respostas
E

Olá pessoal, estou criando este tópico, pq creio que me expressei mal num outro que criei sobre este mesmo problema.Moderadores, me perdoem, mas preciso saber como resolver meu problema.

O que quero saber é simples pra muitos de vcs.Eu nunca programei pra esse fim, talvez por isso eu não esteja sabendo o que fazer.

Vamos ao problema:

Contrui um sistema web que tem o seguinde:
1- página de login;
2- após fazer a validação do login, tenho 4 jsps, uma pra cadastros, uma pra inserções, uma pra atualizações de dados e uma pra logoff.

Eu segui um exemplo feito por um membro do portal, que é o Jair Elton e funcionou pra acessar uma págima apenas das páginas.As outras eu não consigo acessar, nem a pau(…).

Vejam o código que fiz:

Login.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<html>
<head>
<title>Login Page for Examples</title>
<body bgcolor="white">
<form method="POST" action="valida-login" >
  <table border="0" cellspacing="5">
    <tr>
      <th align="right">Usuário: </th>
      <td align="left"><input type="text" name="user"></td>
    </tr>
    <tr>
      <th align="right">Senha: </th>
      <td align="left"><input type="password" name="password"></td>
    </tr>
    
    <% 
    	String[] erros = {"Usuario ou senha invalidos!", "Voce esta logado!"};
    	String erro = request.getParameter("erro");
    	
    	if(erro != null)
    	{    	
    %>
    
    <tr>
      <td><%= erros[Integer.parseInt(erro) - 1] %></td>
    </tr>
    <%  } %>
    
    <tr>
      <td align="right"><input type="submit" value="Entrar"></td>
      <td align="left"><input type="reset" value="Limpar"></td>
    </tr>
  </table>
</form>
</body>
</html>

Erro.jsp

<html>
<head>
<title>Pagina de Erro</title>
</head>
<body bgcolor="white">
Usuario ou senha inválidos!!!<a href= "login.jsp">Tente outra vez</a>.
</body>
</html>

Servlet ValidaLogin

package com.cgi.JavaBeans;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ValidaLogin extends HttpServlet
{
/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
private String userTeste = "zoom";
private String passwordTeste = "123";

	public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
	{			
		PrintWriter out = response.getWriter();
		
		Usuarios usuario = new Usuarios();		
		
		out.println("<html>");
		isLogado(usuario, request, response);
		out.println("</html>");
	}
	
	public HttpServletResponse isLogado(Usuarios usuario, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
	{		
		String user = request.getParameter("user");
		String password = request.getParameter("password"); 
		
		usuario.setUser(user);
		usuario.setPassword(password);
		
		if((!usuario.getUser().equals(userTeste)) || (!usuario.getPassword().equals(passwordTeste)))
		{	
			request.getSession().setAttribute("msg", "Login ou senha incorretos!");
			
			RequestDispatcher rd = request.getRequestDispatcher("error.jsp");
			rd.forward(request, response);
			
			return response;
		}
		else
		{
			request.getSession().setAttribute("usuario", usuario);
			
			RequestDispatcher rd = request.getRequestDispatcher("administrator/index.jsp");
			rd.forward(request, response);
			
			return response;
		}
	}
}

Filtro de Segurança

package com.cgi.JavaBeans;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class FiltroSeguranca implements Filter
{
	public void destroy()
	{
		// TODO Auto-generated method stub		
	}

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
	{
		// TODO Auto-generated method stub
		HttpSession session = ((HttpServletRequest) request).getSession();
		Usuarios usuario = (Usuarios) session.getAttribute("user");
		
		if(usuario == null)
		{
			session.setAttribute("msg", "Olá, " + usuario + "!Voce esta logado!");
			((HttpServletResponse) response).sendRedirect("../index.jsp");
		}
		else
		{
			chain.doFilter(request, response);
		}
	}

	public void init(FilterConfig arg0) throws ServletException
	{
		// TODO Auto-generated method stub		
	}
}

Web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

 <display-name>
    Aplicação Web Simples com JSP
 </display-name>
 
 <filter>
  	<filter-name>Filtro de Segurança de Login</filter-name>
  	<filter-class>com.cgi.JavaBeans.FiltroSeguranca</filter-class>
  </filter>
  
  <filter-mapping>
  	<filter-name>Filtro de Segurança de Login</filter-name>
  	<url-pattern>/administrator/*</url-pattern>
  </filter-mapping>
 
 <servlet>
 	<servlet-name>validar</servlet-name>
 	<servlet-class>com.cgi.JavaBeans.ValidaLogin</servlet-class>
 </servlet>
 
 <servlet-mapping>
 	<servlet-name>validar</servlet-name>
 	<url-pattern>/valida-login</url-pattern>
 </servlet-mapping>
  
  <welcome-file-list>
  	<welcome-file>home.htm</welcome-file>
  	<welcome-file>home.html</welcome-file>
  	<welcome-file>home.jsp</welcome-file>
  </welcome-file-list>
  
</web-app>

Nota:

  • O sistema faz logon e logoff normalmente, mas só tenho acesso a uma das páginas dentro de administreator(diretorio restrito). Não é possível acessar nenhuma outra.

Pergunta:

-O que tenho que fazer pra acessar as outras páginas?

Agradeço a todos pela atenção.

Abraço.

Criado 2 de novembro de 2007
Respostas 0
Participantes 1