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

Langage PHP Discussion :

échange de session entre APACHE et TOMCAT


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    expert technique
    Inscrit en
    Septembre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 93
    Points : 61
    Points
    61
    Par défaut échange de session entre APACHE et TOMCAT
    Bonjour,

    j'ai une appli J2EE (pour le moment sur un serveur de test TOMCAT) avec quelques servlets pour la consultation de données confidentielles de mon entreprise.

    Ces servlets sont accessibles via des liens situés sur un site PHP de production.
    Ces liens sont évidemment accessibles uniquement si l'utilisateur s'est authentifié via une vérification dans une base de données de mots de passe. Les infos de l'utilisateur sont alors stockées dans la session PHP.

    Les servlets doivent être consultables uniquement si l'utilisateur s'est authentifié sur le site PHP.

    Est il possible de récupérer la session PHP à partir de TOMCAT ?
    Si oui comment ?
    Est il possible de dire à TOMCAT que l'utilisateur s'est bien authentifié sur APACHE ?

    Je précise, que mon entreprise n'a pas de référentiel d'utilisateurs LDAP centralisé qui pourrait aider à l'authentifiaction simultanée dans TOMCAT et Apache.

    Eric

  2. #2
    Membre du Club Avatar de toflofr
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 53
    Points
    53
    Par défaut
    je pense que pour résoudre ton problème faudrai mettre un flag dans la base de données si le user est bien logger, et ta servlet verifira se flag, et lorsque l'utilisateur ce deconnecte tu fais sauter le flag.

    Voila moi proposition, mais il existe surement mieux.

  3. #3
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    si tes sessions sont enregistrées sur fichier (ce qui est en général le cas), tu peux aller lire ses fichiers en java.

    Regardes ton session_save_path pour obtenir le chemin
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  4. #4
    Membre du Club
    Profil pro
    expert technique
    Inscrit en
    Septembre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    Tout d'abord merci pour les réponses.

    si tes sessions sont enregistrées sur fichier (ce qui est en général le cas), tu peux aller lire ses fichiers en java.
    Lire dans le répertoire dans lequel apache stocke les fichiers de session est ce que c'est une méthode sécurisée ?

    Dans mon cas les servlets sont situées sur un host différent de celui sur lequel il y a APACHE. A priori j'ai regardé sur notre site PHP, il écrit dans /var/lib/php/session qui a les droits suivants

    drwxrwx--- 2 root apache 4096 jan 19 14:04 session

    seuls les utilisateurs du groupe apache pourraient lire dedans si on exclue root. Ca peut se changer mais faut voir que c'est un site en prod !

    En fait si je résume ta solution :

    - je passe le phpsessid à la servlet par exemple phpsessid=sg55g56ff56gfd65gfdfgfd87
    - ensuite la servlet vérifie que le fichier sess_sg55g56ff56gfd65gfdfgfd87 existe sur le host d'apache
    - s'il existe c'est que l'utilisateur s'est connecté
    sinon il ne s'est pas connecté

    Me vient la question suivante :

    si le fichier sess_sg55g56ff56gfd65gfdfgfd87 existe cela signifie t il dans tous les cas que l'utilisateur est connecté. En d'autre terme si le fihier existe est on sur que la session n'a pas expiré ?

    je pense que pour résoudre ton problème faudrai mettre un flag dans la base de données si le user est bien logger, et ta servlet verifira se flag, et lorsque l'utilisateur ce deconnecte tu fais sauter le flag.
    Cette solution consistant à mettre un flag dans la BD disant si l'utilisateur est connecté me semble inadéquate. En effet il est possible que deux personnes soient connectées avec le meme utilisateur. Si un des deux personnes se déconnecte il fera sauter le flag et donc l'autre personne sera flaguée non connectée alors qu'en réalité elle devrait etre flagueé connectée !!!???

    Eric

  5. #5
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    je suis bien d'accord que ça va impliquer des contraintes mais bon vu ce que tu veux faire ....

    le fichier de session peut tres bien etre encore là alors que la session à expirée, il faudrais regarder la date de dernière modification du fichier pour etre sur et bien entendu tester en fonction de la durée d'une session ....

    autre solution peut être, se pencher sur les cookies car coté client c est stocké la dedans
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  6. #6
    Membre du Club
    Profil pro
    expert technique
    Inscrit en
    Septembre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    1ere solution

    Regarder dans le fichier de session sur le host d'apache. La servlet vérifie si l'utilisateur est toujours connecté en recherchant le login dans le fichier (son login est enregistré dans la session dès qu'il s'est connecté)
    Cela implique d'avoir des droits en lecture pour l'utilisateur qui va lire le fichier à partir de la servlet.

    2eme solution

    Regarder dans le cookie du client. La on peut trouver le phpsessid. Une fois récupéré dans la servlet qu'est ce que j'en fais ? A priori je ne peux pas lire le contenu !?
    Cette solution a le mérite d'éviter de lire sur le host d'Apache.

    La 2eme solution me coviendrait mieux mais techniquement je ne sais pas si une servlet pour lire le contenu d'un cookie créé par php.

    Qu'en penses tu ?

    Eric

  7. #7
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    si le cookie est dans le meme domaine ca doit etre faisable

    sinon tu peux toujours voir si javascript te le retourne avec document.cookie
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  8. #8
    Membre du Club
    Profil pro
    expert technique
    Inscrit en
    Septembre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    Là où ca se complique c'est que sur le site PHP lorsque l'utilisateur n'est pas identifié une variable session existe quand meme. Elle sert à la navigation dans le site.

    Du coup meme si la session existe du côté PHP ça veut pas forcément dire que l'utilisateur est identifié.

    Par contre quand l'utilisateur est identifié le site créé une variable de connexion dans la session avec son login. Il faudrait que du côté servlet je vérifie que ce login existe bien dans la session PHP.

    Eric

  9. #9
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    le plus simple serais peut etre effectivement de passer par la base de données ou par un fichier dans lequel tu stockerais le login,l'ip et la date/heure d'authentification.

    Et tu gère toi meme un delai au bout duquel il n'aura plus acces.

    Ce fichier te permettra en plus de te faire des logs des accès
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

Discussions similaires

  1. Lien symbolique entre Apache et Tomcat sous Debian
    Par rohstev dans le forum Administration système
    Réponses: 17
    Dernier message: 13/05/2008, 10h33
  2. problème de communication entre apache et tomcat en https
    Par Kursha dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 16/11/2007, 14h11
  3. Liaison entre Apache et Tomcat impossible
    Par JUSTIN Loïc dans le forum Tomcat et TomEE
    Réponses: 13
    Dernier message: 02/08/2007, 18h17
  4. [Tomcat]échange de session entre php et java
    Par benwa dans le forum Tomcat et TomEE
    Réponses: 18
    Dernier message: 05/06/2007, 17h01
  5. liason entre apache et tomcat PROBLEMES§#%£¤
    Par liquideshark dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 10/11/2006, 17h00

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