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

Java EE Discussion :

Sécuriser une application J2EE et la connexion à l'application


Sujet :

Java EE

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Sécuriser une application J2EE et la connexion à l'application
    Bonsoir!

    J'ai un projet J2EE à faire. Du côté client une applet, et du côté serveur une application full J2EE (servlet/EJB).
    Pour mon cas il n'ya que les ports HTTP qui sont ouvert.
    Je vous passe les détails, mon problème ici n'est pas la mise en place de ce systeme répartis.

    Il ya juste sur une chose que je bute.
    En fait je dois donner la possibilité à un client de commander des produit à travers mon applet, mais pour cela il doit s'authentifier.
    J'ai pensé aux variables sessions, mais vu que c'est une applet...

    Il a aussi été demandé de sécuriser l'application J2EE, il ne faut pas que n'importe qui puisse utiliser mes servlets. J'ai pensé à JAAS j'ai bon?

    Bref je suis un peu perdu niveau securité, si vous avez la possibilité de me donner des pistes cela m'aiderai beaucoup!

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    l'applet ne bénéficiera pas de l'authentification HTTP du client. Comme (si j'ai bien compris) ton applet utilisera des EJB pour se connecter au serveur, c'est un protocole différent de HTTP et donc pas possible de propager, coté client, les credentials du navigateur. Il faudra donc un login / password dans l'applet.


    Pour la gestion de la sécurité, c'est ton conteneur J2EE qui s'en chargera. Peu importe que ce soit via JAAS ou autre, les fichiers de configuration EJB, web.xml et autres ont des moyens standards de définir quel role peut faire quoi et de gérer l'authentification. Utilise les (exemple les security-constraint dans le web.xml).

    PS: pourquoi utiliser une applet plutot que des pures page web? Tout dépend bien sur de ton type de client, mais en général, des pages web sont plus légères pour le client (pas besoin de lancer une jvm, de télécharger java, et, souvent, de donner les autorisations à l'applet sur base de sa signature)

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Moi aussi je pense que cela serait plus facile avec les JSP, mais bon l'applet est imposé j'ai pas le choix ^^.
    Juste une petite rectification, mes EJB seront en local, donc je n'aurai pas la possibilité de faire communiquer l'applet avec les EJB via rmi.
    Je suis donc obligé de passer par les servlet:
    applet>(HTTP)->servlet->(RMI)->EJB

    Si j'ai bien compris, sa sa sera mon conteneur J2EE qui s'occupera de tout donc Jonas.

    Ensuite vous me dites que je suis obligé de paramétré le login et le mot de pass en dur c'est sa? dans la page html, quand j'insere l'applet?
    En faisant sa est ce que je pourrai deconnecter un utilisateur et en loguer un autre?

    Et enfin derniere petite question,est ce que ces parametres (log+pass) seront envoyé automatiquement lors d'un appel à un servlet? Et est ce que je pourrai les recuperer a partir du request?

    Désolé pour toute ces questions, mais sa m'intéresse ^^

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Pascalou70 Voir le message
    Je suis donc obligé de passer par les servlet:
    applet>(HTTP)->servlet->(RMI)->EJB
    Et pourquoi pas (ce qui serait plus logique je pense)
    applet-> webservice HTTP -> EJB
    Ce serait plus propre, et comme on reste dans le http, il devrais y avoir moyen de charger les webservices avec la session du client. Il suffit de transférer ton JSessionId à l'applet lors de son démarrage.

    Ensuite vous me dites que je suis obligé de paramétré le login et le mot de pass en dur c'est sa? dans la page html, quand j'insere l'applet?
    En faisant sa est ce que je pourrai deconnecter un utilisateur et en loguer un autre?
    Pas compris la question

    Et enfin derniere petite question,est ce que ces parametres (log+pass) seront envoyé automatiquement lors d'un appel à un servlet? Et est ce que je pourrai les recuperer a partir du request?
    Non, c'est pas automatique, ton applet devri faire tout le boulot (gestion de session, connections http, etc).

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Et pourquoi pas (ce qui serait plus logique je pense)
    applet-> webservice HTTP -> EJB
    Ce serait plus propre, et comme on reste dans le http, il devrais y avoir moyen de charger les webservices avec la session du client. Il suffit de transférer ton JSessionId à l'applet lors de son démarrage.
    C'est du service SOAP que vous parlez? je ne suis pas encore trop compétent là dessus, je sais utiliser les services, mais pas les créer lol on aura bientot des cours la dessus, au moins je saurai qu'il faudra faire comme sa la prochaine fois.
    En fait je n'ai pas trop le droit d'utiliser les webservices, je dois faire sans.

    Je sais qu'avec les servlets c'est pas trop pratique, mais je n'ai pas le choix, obligation de les utiliser pour faire le lien entre l'applet et les EJB, il parait que c'est pour un souci de sécurité, même si je vois pas trop l'intérêt...

    Et je ne comprend pas trop pour le JsessionId, il faut que je m'identifie avant de lancer l'applet pour que sa marche?

    Merci pour votre aide.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Pascalou70 Voir le message
    Ensuite vous me dites que je suis obligé de paramétré le login et le mot de pass en dur c'est sa? dans la page html, quand j'insere l'applet?
    En faisant sa est ce que je pourrai deconnecter un utilisateur et en loguer un autre?
    C'était pas trop claire là
    Ce que je voulais dire ici, c'est qu'il faut prendre mon applet comme un site e-commerce, il ya des partis où je peux naviguer sans pour autant être connecté. Et d'autre ou je dois me connecter et garder en mémoire ma connexion(par exemple pour une commande).
    Je voudrai que sa fonctionne deja en local sur eclipse, après cela j'essayerai de l'exporter la partie cliente.
    Je ne sais pas si je s'est plus clair là

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    l'applet doit faire quoi exactement? Il est quand meme plus facile de faire un applet qui communiquer par HTTP (webservice ou autre) avec ton serveur tomcat/glassfish/jboss/jonas peu importe que de faire une applet qui embarque un client RMI et qui, en plus, nécessite du coté serveur un serveur RMI qui tourne.

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    L'applet doit afficher tout les films actuellement au ciné (cela ne necessite pas de s'authentifier)
    Et j'ai la possibilité de réserver des places, mais pour cela, l'utilisateur doit se connecter (login+mdp).

    Je suis tout à fait d'accord avec vous mais je n'ai pas le choix, il n'ya que les port HTTP qui sont ouvert dans mon cas.
    Je sais que sa peut paraitre tordu comme pratique pour vous, mais c'est juste un projet pour appliquer nos connaissances.

    petite question toute bête, le servlet, c'est un webservice?

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    le servlet c'est juste du code qui réagit à une demande http. Le websrevice n'est qu'un cas particulier.

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Ah ok.
    Il ne me reste plus qu'à me mettre au boulot ^^
    Encore merci pour votre aide
    Bonne soirée!

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Rebonsoir!

    J'aurai une toute petite question ^^
    Quel serait la bonne méthode pour sauvegarder la référence d' une instance d'un ejb session stateful dans un servlet.

    En fait mon applet appel le servlet, et le servlet en question créee une instance d'un ejb session stateful, mais j'aimerai garder la référence de cet ejb, pour pouvoir appeler cette même instance, quand l'applet en aura besoin plus tard.

    J'avais pensé a le garder dans une variable session, mais bon sa n'a pas l'air de fonctionner avec l'applet (sans browser), il ne le garde pas en mémoire...

    Je suis un peu bloqué la dessus... help please

    Cordialement,

    Pascalou70

Discussions similaires

  1. sécurisation d'une application J2EE
    Par info20111 dans le forum Java EE
    Réponses: 0
    Dernier message: 05/02/2013, 09h22
  2. Réponses: 2
    Dernier message: 27/03/2009, 10h47
  3. Application J2EE (suite - Connexion JDBC)
    Par clisson dans le forum XMLRAD
    Réponses: 1
    Dernier message: 02/11/2005, 11h12
  4. [Plugin][MyEclipse]Lancement d'une application J2EE
    Par ujoodha dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/04/2005, 15h48
  5. [UML]modéliser une application J2EE sous UML
    Par stago dans le forum Java EE
    Réponses: 4
    Dernier message: 22/02/2005, 10h14

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