Je pense que tu mélange un peu les 2 sujets.
Ce que je t'ai indiqué est une gestion global des accès au site. Une fois authentifié, Une session est mise en oeuvre pour l'utilisateur. Tant que cette session est valable, il n'y aura pas besoin de se reconnecter.
Concernant l'envoi de mot de passe et de login via l'url, ce n'est pas un problème. En effet, tu peux appellé directement la fonction, il suffit que ton formulaire s'envoi automatiquement par exemple.
Il reste toujours la solution du filtre sur les servlets, lorque tu va recevoir ta requête "POST", ton filtre sera activé. Tu n'a plus qu'à lire les paramètres mots de passe+login, faire la vérification dans ta base pour savoir si l'utilisateur est autorisé puis placer une session avec les informations dedant au besoin. A chaque appel de servlet, tu vérifie si la session est toujours placé. Tu n'auras pas besoin de transmettre via les url de ton site le login et mot de passe puisqu'ils seront en session.
Voilà un exemple rapide....
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;
/**
* Représente
* <p>
* @since
* @author beckw
*/
public class LoginFilter implements Filter {
protected FilterConfig filterConfig;
// Applelé une fois, lorsque ce filtre est instancié.
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void destroy() {
this.filterConfig = null;
}
// Appelé pour chaque demande mappée à ce filtre.
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws java.io.IOException,
ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
if (req.getSession() != null && req.getSession().getAttribute("login") != null) {
// l'utilisateur est déjà connecté.....
} else {
// on récupére les paramètres de la requête...
String username = req.getParameter("login");
String password = req.getParameter("pwd");
// test de connexion a réaliser ici....
if (testConnexion(username, password)) {
// l'utilisateur est autorisé, on place les informations en session....
req.getSession().setAttribute("login", username);
req.getSession().setAttribute("pwd", password);
} else {
// on interrompt la requête car l'utilisateur n'est pas autorisé.
return;
}
}
chain.doFilter(request, response); // appelle le filtre suivant de la chaîne ou la servlet
// appellée
}
}
Je pense que tu mélange un peu les 2 sujets.
Ce que je t'ai indiqué est une gestion global des accès au site. Une fois authentifié, Une session est mise en oeuvre pour l'utilisateur. Tant que cette session est valable, il n'y aura pas besoin de se reconnecter.
Concernant l'envoi de mot de passe et de login via l'url, ce n'est pas un problème. En effet, tu peux appellé directement la fonction, il suffit que ton formulaire s'envoi automatiquement par exemple.
Il reste toujours la solution du filtre sur les servlets, lorque tu va recevoir ta requête "POST", ton filtre sera activé. Tu n'a plus qu'à lire les paramètres mots de passe+login, faire la vérification dans ta base pour savoir si l'utilisateur est autorisé puis placer une session avec les informations dedant au besoin. A chaque appel de servlet, tu vérifie si la session est toujours placé. Tu n'auras pas besoin de transmettre via les url de ton site le login et mot de passe puisqu'ils seront en session.
Voilà un exemple rapide....