Servlet d'authentification avec MySQL
Bonsoir à tous, je viens de créer une Servlet Login et une page JSP Login afin de permettre l'authentification des utilisateurs qui se sont enregistrés dans ma base de donnée. Le problème de ma Servlet c'est qu'elle ne permet l’authentification que de la dérniére personne s'étant inscrite ... et je ne comprend pas du tout pourquoi !
Et dans un deuxième temps j'aimerai changer la connexion de ma Servlet pour passer par mon fichier persistence.xml
Voici mes codes ! avez vous une idée de l'origine du probléme ?
Ma servlet Login :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| package com.supmessaging.servlet;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet(urlPatterns = "/Logintest")
public class Login extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
private ServletConfig config;
public void init(ServletConfig config)
throws ServletException{
// this.config=config;
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
PrintWriter out = response.getWriter();
// "configuration" de la connexion à la base de donnée
String connectionURL = "jdbc:mysql://localhost:3306/supmessaging";
Connection connection=null;
ResultSet rs;
//variable locale pour le username et le password
String usrnm=new String("");
String pswd=new String("");
response.setContentType("text/html");
try {
Class.forName("com.mysql.jdbc.Driver");
//Connexion à la base de données
connection = DriverManager.getConnection(connectionURL, "root", "");
// on récupére username et password dans la BDD
String sql = "SELECT username, password FROM users" ;
Statement s = connection.createStatement();
s.executeQuery (sql);
rs = s.getResultSet();
while (rs.next ()){
usrnm=rs.getString("username");
pswd=rs.getString("password");
}
rs.close ();
s.close ();
}catch(Exception e){
System.out.println("Exception is ;"+e);
}
//on compare les usernames et password entrer avec ceux de la ba BDD
if(usrnm.equals(request.getParameter("username")) && pswd.equals(request.getParameter("password"))){
request.getSession().setAttribute("username", usrnm);
out.println("login ok");
}
else{
out.println("login nok");
}
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
RequestDispatcher rd = req.getRequestDispatcher("/login.jsp");
rd.forward(req, resp);
}
} |
Ma page JSP login :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>SupMessaging by MLabs</title>
<link rel="stylesheet" href="./style.css" />
</head>
<body>
<%@ include file="header.jsp" %>
<!-- Main -->
<div id="main" class="main">
<form action="<%= request.getContextPath() %>/Logintest" method="post">
<h2>identifiez vous</h2>
<p>
Nom d'utilisateur :<br>
<input type="text" pattern=".{4,30}" name="username" placeholder="4 caractères minimum." size=30 required>
<br>
Mot de passe :<br>
<input type="password" pattern=".{8,40}" name="password" placeholder="8 caractères minimum." size=30 required>
<br>
<input type="submit" value="Soumettre">
</p>
</form>
</div>
<%@ include file="footer.jsp" %>
</body>
</html> |
Ma page persistence.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="PU" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.archive.autodetection" value="class" />
<property name="hibernate.format_sql" value="true" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/supmessaging" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence> |