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.