IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Système d'identification [ConnectionPool]


Sujet :

Développement Web en Java

  1. #1
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut Système d'identification [ConnectionPool]
    Bonjour,

    J'aimerais implémenter un nouveau système d'identification en utilisant un pool de connexion.
    Auparavant, on effectuait la connexion avec un user/mdp oracle PAR utilisateur.

    J'ai une jsp de login qui demande "user" + "mdp" et qui envoit les données vers une servlet Ident.java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		String ident = request.getParameter("ident");
    		String pwd = request.getParameter("pwd");
     
    		try {
    			Class.forName("oracle.jdbc.driver.OracleDriver") ;
    			@SuppressWarnings("unused")
    			Connection cn = (Connection)DriverManager.getConnection("jdbc:oracle:thin:@name:port:conn",ident,pwd);
    			HttpSession session = request.getSession(true);
    			session.setAttribute("loggedUser", ident);
    			response.sendRedirect("/NewLoginMethod/Init");
     
    		} catch (ClassNotFoundException e) {
    			response.sendRedirect("index.jsp?erreur="+ e.getMessage());
    		}catch (SQLException sqle) {
    			// TODO Auto-generated catch block
    			response.sendRedirect("index.jsp?erreur="+sqle.getMessage());
    		}
     
    	}
    Si la connexion est réussie, que le mdp est correct (user/mdb oracle), on redirige l'utilisateur vers la page principale (via une servlet "Init" que voici).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
    		HttpSession session = request.getSession(false);
    		DataSource ds=null;
    		Connection con = null;
    		Statement stmt = null;
     
    		if(session!=null)	
    		{
    		try 
    		{
    			String userDescr="";
    			Context initContext = new InitialContext();
    			ds = (DataSource) initContext.lookup("java:comp/env/jdbc/DataSource");
    			con = ds.getConnection();
    			stmt = con.createStatement();
     
    			String sql="select description from UTILISATEUR " +
    					   " where login = '" + session.getAttribute("loggedUser") + "'";
    			ResultSet rs = stmt.executeQuery(sql);
    			while(rs.next())
    				userDescr=rs.getString(1);
     
    			request.setAttribute("userDescr",userDescr);
    			getServletConfig().getServletContext().
    			getRequestDispatcher("/html/welcomePage.jsp").forward(request, response);
     
    		} catch (NamingException e) {
    			e.printStackTrace();
    		}catch (SQLException sqle){
    			sqle.printStackTrace(); 
    		} finally
    		{
    			ds=null;
    			try {
    				stmt.close();
    				con.close();
    			} //Already Closed
    			catch (SQLException e) {}
    			stmt=null;
    			con=null;
    		}
    		}
    		else
    			response.sendRedirect("index.jsp?erreur=Session expirée!");
    	}
    A partir de là, tous les utilisateurs qui se connectent avec succès utilisent le pool de connexion avec le user/mdp générique, commun pour tous.

    Et dans la welcomePage.jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <!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=ISO-8859-1">
    <title>Welcome</title>
    </head>
    <body>
    	<h1>Bienvenue <c:out value="${requestScope['userDescr']}"/>!</h1>
    	<h4>Vous vous êtes identifié avec succès..</h4>
    </body>
    </html>
    Est-ce une bonne manière de procéder ?
    Si un utilisateur tape directement http://monserveur/MonContext/Init , il accèdera directement à la page de cette manière..
    Comment contrôlez-vous qu'il est bien identifié ? via une variable de session?
    N'y a-t-il aucun soucis lorsque X utilisateurs se connectent en même temps avec ce procédé ?

    Merci d'avance.

  2. #2
    Membre régulier Avatar de VinceFromBcn
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    Bonjour,

    Tu travailles avec quel serveur d'application ?

  3. #3
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Bonjour,

    Sur wasCE (websphere)

Discussions similaires

  1. système d'identification unique
    Par Euseibus dans le forum Langage
    Réponses: 2
    Dernier message: 08/10/2010, 10h48
  2. Petite question sur un système d'identification
    Par isoman dans le forum Forms
    Réponses: 14
    Dernier message: 29/05/2008, 14h49
  3. Conception d'un système d'identification de mes visiteurs
    Par Tchupacabra dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 15/03/2008, 12h54
  4. mettre en place un système d'identification
    Par d10g3n dans le forum Apache
    Réponses: 4
    Dernier message: 23/10/2006, 18h27
  5. Réponses: 9
    Dernier message: 13/05/2006, 23h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo