Ciao a tutti avrei bisogno di un mano per un applicativo che devo modificare.
Sino ad oggi il mio applicativo era accessibile a chiunque all'interno dell'intranet aziendale, adesso la situazione si complica un pò, in quanto devo implementare l'inserimento di username e password all'interno dell'applicativo (si può entrare solamente con l'inserimento di username e password).
Mi sono creato un altro progettino su tomcat (nell'applicazione in produzione viene utilizzato jboss 5.1) ed ho creato le classi java per poter effettuare il login.
e le pagine jsp per vedere se è entrato o no.
Il primo (di numerosi) problemi (o dubbi) che ho incontrato è questo:
Al momento in cui vado a lanciare il login nell'url del browser viene fuori la password in chiaro in questo modo:
http://localhost:8084/Login/LoginSer...password=pippo
queste sono le servlet e le classi java che ho utilizzato:
questa è la servlet per il login
codice:
package login;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import model.Autenticazione;
public class LoginServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String username, password;
try {
HttpSession session = request.getSession(true);
Autenticazione autenticazione = (Autenticazione) session.getAttribute("login");
if(autenticazione == null) {
autenticazione = new Autenticazione();
}
username = request.getParameter("username");
password = request.getParameter("password");
if((username.compareTo("pippo")==0)&&(password.compareTo("pippo")==0)){
autenticazione.setValue(true);
session.setAttribute("login", autenticazione);
request.getRequestDispatcher("/logOK.jsp").forward(request, response);
} else {
request.getRequestDispatcher("/logKO.jsp").forward(request, response);
}
} finally {
out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
Questa è la classe che modella autenticazione:
codice:
package model;
public class Autenticazione {
boolean accesso = false;
public void setValue(boolean accesso){
this.accesso = accesso;
}
public boolean getValue() {
return accesso;
}
}
e questo è l'index:
codice:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login</title>
</head>
<body>
<form action="LoginServlet" class="container">
-
<label for="code">Username: </label>
<input type="text" name="username" id="username" size="30" />
-
<label for="code">Password: </label>
<input type="password" name="password" id="password" size="30" />
<input type="submit" value="Ricerca">
</p>
</form>
</body>
</html>
come posso evitare che nell'url si veda il valore del campo password?
Grazie in anticipo ragazzi