Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tomcat : Impossible de créer une session

    19 janvier 2022 à 1:43:41

    Bonjour je travaille sur un site en java ee avec Tomcat 9. Sur ce site j'ai une fonctionnalité de connexion. En local sur eclipse lorsque je fais mes tests j'arrive à me connecter sans soucis mais lorsque je vais en production et que j'essaie de deployer l'application, j'arrive plus à me connecter. La session se crée bien vu que j'ai accès à la session ID mais la redirection me laisse sur la même page et la session ne se crée pas.

    La page avec le formulaire

    <%@ page pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <title></title>
    <meta charset="utf-8" />
    <c:import url="/inc/other/css.jsp"/>
    <link rel="stylesheet" href="/inc/css/index.css" />
    </head>
    <body>
    
    
    	
    	<div class="container-fluid">
    		<div class="background-left"></div>
    		<div class="background-right"></div>
    		
    		<div class="container connexion-form-container">
    		
    			<div class="logo-left-container">
    				<img src="/inc/images/logo.png" alt="Logo Gehant" />
    				<p>Bienvenue</p>
    			</div>
    			
    			<div class="form-content">
    				<form method="post" action="<c:url value="/gehant-admin/connexion" />">
    					<div class="form-floating mb-3">
    						<input type="email" class="form-control" id="email"
    							placeholder="Email"> <label for="email">Adresse email</label>
    					</div>
    					<div class="form-floating">
    						<input type="password" class="form-control" id="password"
    							placeholder="Mot de passe"> <label for="password">Mot de passe</label>
    					</div>
    					<button type="button" id="connexion">Se connecter</button>
    				</form>
    			</div>
    
    
    		</div>
    	</div>
    	<c:import url="/inc/other/js.jsp"/>
    	<script src="/inc/js/index.js" type="text/javascript"></script>
    </body>
    </html>

    La page de validation

    package com.gehant.admin.validation;
    
    import javax.servlet.http.HttpServletRequest;
    
    import com.gehant.admin.beans.Utilisateur;
    import com.gehant.admin.dao.UtilisateurDao;
    import com.gehant.admin.utils.Constants;
    import com.gehant.admin.utils.FunctionUtils;
    
    public class ConnexionValidation {
    
    	private final String CHAMP_EMAIL = "email";
    	private final String CHAMP_PASSWORD = "password";
    
    	private UtilisateurDao utilisateurDao = null;
    
    	public ConnexionValidation(final UtilisateurDao utilisateurDao) {
    		this.utilisateurDao = utilisateurDao;
    	}
    
    	public Utilisateur validConnexion(final HttpServletRequest request) {
    		final String email = FunctionUtils.getValueChamp(request, this.CHAMP_EMAIL);
    		final String password = FunctionUtils.getValueChamp(request, this.CHAMP_PASSWORD);
    
    		final String passwordCrypted = FunctionUtils.crypterPass(Constants.PASSWORD_ALGORITHM, password);
    		final Utilisateur utilisateur = this.utilisateurDao.adminConnect(email, passwordCrypted);
    
    		if (utilisateur != null && this.utilisateurDao.updateConnect(utilisateur.getId())) {
    			return utilisateur;
    		}
    
    		return null;
    	}
    
    }
    

    La page de servlets

    package com.gehant.admin.servlets;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import com.gehant.admin.beans.Utilisateur;
    import com.gehant.admin.dao.UtilisateurDao;
    import com.gehant.admin.factory.DaoFactory;
    import com.gehant.admin.utils.Constants;
    import com.gehant.admin.validation.ConnexionValidation;
    
    @WebServlet(urlPatterns = "/gehant-admin/connexion")
    public class Connexion extends HttpServlet {
    
    	private UtilisateurDao utilisateurDao = null;
    	public static final String ATT_ADMIN_SESSION = "admin";
    
    	@Override
    	public void init() throws ServletException {
    		this.utilisateurDao = ((DaoFactory) this.getServletContext().getAttribute(Constants.ATT_FACTORY))
    				.getUtilisateurDao();
    	}
    
    	@Override
    	public void doPost(final HttpServletRequest request, final HttpServletResponse response)
    			throws ServletException, IOException {
    
    		response.setCharacterEncoding("UTF8");
    		final ConnexionValidation validation = new ConnexionValidation(this.utilisateurDao);
    		final Utilisateur utilisateur = validation.validConnexion(request);
    
    		if (utilisateur != null) {
    			final HttpSession session = request.getSession();
    			session.setAttribute(ATT_ADMIN_SESSION, utilisateur);
    			response.getWriter().write("{\"result\" : \"ok\"}");
    		} else {
    			response.getWriter().write("{\"msg\" : \"L'adresse email et/ou le mot de passe est incorrect.\"}");
    		}
    
    	}
    
    }
    

    Merci de me venir en aide. Ca fait plus de 2 semaines que je n'y arrive pas à regler le probleme



    • Partager sur Facebook
    • Partager sur Twitter

    Vickson Ahiwa

    Tomcat : Impossible de créer une session

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown