Newsgroup: it.comp.java
Titolo: controllo accessi con jsp o servlet

Come da oggetto ho creato una pagina di "login" in cui l'utente immette il
proprio nome e la propria password, questi vengono controllati con una query
su un DB, se è tutto OK creo una sessione e l'utente viene rediretto su una
pagina protetta.
La pagina è protetta nel senso che controllo un attributo della sessione e
se non lo trova visualizza un messaggio di errore, altrimenti visualizza il
contenuto correttamente.
Problema: quando esco da questa pagina, dopo aver rimosso il valore
dell'attributo che consente l'accesso, e poi ci ritorno, mi ricompare tutto
il contenuto e non, come vorrei, il msg di errore, se invece faccio un
refresh allora compare il messaggio di errore.
Come risolvere? Qualcuno ha un esempio semplice da postarmi?
Grazie
Luciano.
Segue codice delle pagine coinvolte:
INSERT.JSP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
 <title>Login</title>
<meta name="generator" content="TSW WebCoder">
</head>
<body>
<form name="dati" action="controlla.jsp">
<table bgcolor="#FFFFFF">
<tr>
        <td>Nome</td>
        <td><input type="text" name="nome" size="20" maxlength="20"></td>
</tr>
<tr>
        <td>Cognome</td>
        <td><input type="text" name="cogn" size="20" maxlength="20"></td>
</tr>
<tr>
  <td><input type="submit" value="Conferma"></td>
  <td><input type="reset" value="Cancella"></td>
</tr>
</table>
</form>
</body>
</html>
controlla.jsp
<HTML>
<HEAD>
<TITLE>Controllo nomi</TITLE>
</HEAD>
<BODY>
<%@ page language="java" import="java.sql.*,java.util.*"%>
<%
String urllab ="jdbc:interbase://pcced2/c:/db5ic/sondaggio.gdb";
String urlhom ="jdbc:interbase://hal9000/d:/db5ic/sondaggio.gdb";
try
{
    Class.forName("interbase.interclient.Driver");
    Connection conn =
DriverManager.getConnection(urlhom,"sysdba","masterkey");
    Statement st = conn.createStatement();
    String nome = request.getParameter("nome");
    String cogn = request.getParameter("cogn");
    ResultSet rs = st.executeQuery("select * from anagrafica where nome
='"+nome+"' and cogn ='"+cogn+"'");
    if (rs.next())
    {
     HttpSession sess = request.getSession(true);
    String auth = (String)sess.getAttribute("auth");
     if (auth == null)
         sess.setAttribute("auth", "OK");
     response.sendRedirect("page1.jsp");
    }
    else
       out.print("Utente non registrato<br>");
    rs.close();
}
catch(ClassNotFoundException cnfe)
{
    out.println("Attenzione classe non trovata "+cnfe.getMessage());
}
catch(SQLException sqle)
{
    out.println("Attenzione errore SQL "+sqle.getMessage());
}
%>
<br>
<br>
<a href="insert.jsp">Torna alla pagina iniziale</a>
</BODY>
</HTML>
page1.jsp (la pagina "protetta"!!)
<HTML>
<HEAD>
<TITLE>Paggina ad accesso controllato</TITLE>
</HEAD>
<BODY>
<%
HttpSession sess = request.getSession(true);
String auth = (String)sess.getAttribute("auth");
if (auth == null)
 response.sendRedirect("paginaErrore.jsp");
else
    sess.removeAttribute("auth");
%>
<br>
<br>
Ok! accesso consentito<br><br>
<a href="insert.jsp">Torna alla pagina iniziale</a>
</BODY>
</HTML>
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.476 / Virus Database: 273 - Release Date: 24/04/2003

 
wrote:

-- 
Using M2, Opera's revolutionary e-mail client: 
http://www.opera.com/m2/


e quindi...


 ha scritto nel
messaggio news:Q8iya.16332$lK4.4...@twister1.libero.it...



[....]
Rispondete sotto per favore,  non all'inizio del post!

Risolto.Grazie a tutti.
Luciano
