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

GWT et Vaadin Java Discussion :

Authentification Sécurité avec GWT : Sécuriser les servlets


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut [ Résolu ] Authentification Sécurité avec GWT : Sécuriser les servlets
    Bonjour,

    je suis actuellement à la recherche d'une solution de sécurisation d'un appli GWT.
    CE qui est sur, c'est que je veux utiliser seulement GWT (pas d'ACEGI / Spring Security, etc...)

    Comme base j'ai cet article de Google (un tantinet laconique) :
    http://code.google.com/p/google-web-...ginSecurityFAQ

    En premier, est ce que quel qu'un peut m'indiquer comment se traduit en code cette phrase :

    Your server will then validate this login, and return a sessionID to your GWT app. The GWT app will store this sessionID in a static field. For every further request your GWT app makes to your server, include this sessionID in the payload of the request. (Either in the JSON data or the object you are transferring using GWT-RPC).
    Je suppose que je mets l'Id de session dans l'appController au lancement et ensuite je fais quoi? Je le mets en paramètre de chaque appel GWTrpc?

    Sinon je pensais faire une "SecurityServlet" côté serveur qui vérifie si il y a le paramètre "sessionId" dans la session et qui le compare avec le sessionId actuel.

    Vous avez des idées?

  2. #2
    Membre chevronné
    Profil pro
    Lead Tech Agile
    Inscrit en
    Septembre 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Lead Tech Agile

    Informations forums :
    Inscription : Septembre 2004
    Messages : 316
    Par défaut
    Si tu n'as rien d'autre que GWT je ferais.

    1 - l'utilisateur se connecte à l'appli, il récupère donc le html qui n'a pas de sessionId et qui va donc afficher l'écran de login.
    2 - il se log, côté serveur tu vérifie que son login / MDP sont correcte, tu génère un sessionId et tu le renvois en réponse et que tu garde côté serveur.
    3 - Côté client tu stocke le sessionId en cookie. le cookie est transmis à chaque requete. Côté serveur tu dois pouvoir le récupérer pour vérifier à chaque appel si ton user est bien connecté.

    Cas d'exception :
    Si l'appel Rpc à un sessionId incorrect, tu renvoie une exception. Côté GWt si tu récupère l'exception tu affiche la page de login.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut
    J'ai un souci du coup, je ne peux pas partager de données dans la session avec GWT.

    Je me suis inspiré de cet article :
    http://developerlife.com/tutorials/?p=230

    dont la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	/**
             * Returns the current session
             * @return The current Session
             */
    	private HttpSession getSession() {
    		// Get the current request and then return its session
    		HttpServletRequest httpServletRequest = getThreadLocalRequest();
    		HttpSession session = httpServletRequest.getSession();
    		return session;
    	}
    mais le httpServletRequest.getSession(); me renvoie un null pointer exception la deuxième fois que je l'utilise.

    Avec une servlet classique ça devrait être facile mais avec les remoteServiceSevlet de Google, impossible de trouver un moyen correct de procéder.

  4. #4
    Membre chevronné
    Profil pro
    Lead Tech Agile
    Inscrit en
    Septembre 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Lead Tech Agile

    Informations forums :
    Inscription : Septembre 2004
    Messages : 316
    Par défaut
    Tu peux créer un filtre Http sur tes appels Rpc.

    Il sera appelé avant la méthode Gwt.

    Un exemple ici : http://www.berthou.com/fr/2009/01/11...tion-dune-jsp/

    Le mécanisme est le même avec des services Rpc.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut
    oui mais je ne vois pas trop l'intérêt dans mon cas.
    Idéalement, j'aimerais ne pas avoir à stocker les infos dans une variables statique mais bien dans la session.
    Si je fais un filtre je suis obligé de passer par un tableau d'info statique.

  6. #6
    Membre chevronné
    Profil pro
    Lead Tech Agile
    Inscrit en
    Septembre 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Lead Tech Agile

    Informations forums :
    Inscription : Septembre 2004
    Messages : 316
    Par défaut
    Au contraire, je pense que c'est la seule manière de réaliser une authentification.

    Avec ton filtre tu auras accès à la session Http. Il faut stocker les variables d'authentification dans la session Http. Ensuite, tu peux utiliser un ThreadLocal pour "envoyer" un identifiant vers le service Rpc.

Discussions similaires

  1. Problème avec NetBeans et les servlets
    Par HelloInfo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 19/10/2012, 22h01
  2. affichage d'une image avec les servlets
    Par hassanovich dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 03/11/2006, 10h35
  3. Pb d'appel avec les servlets !
    Par anapotheque dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/06/2006, 10h19
  4. [SQL QUERY] Problème avec les servlet plutôt qu'avec SQL
    Par Battosaiii dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 11/04/2006, 01h08

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