Hé, je suis dans une situation de code WTF travaillant sur un serveur jsp tomcat et essayant de transmettre des données de session (identifiant d'utilisateur, etc.) à php. J'ai l'intention de réécrire la manipulation de session php avec session_set_save_handler() ma question est où tomcat stocke-t-il les données de session (disque dur?) et quel type d'encodage utilise-t-il? ou suis-je sur le mauvais chemin? Je sais que l'idée de mashing PHP et JSP est stupide vient d'obtenir cette affectation et je suis énervé aussi.Comment passer une session entre tomcat et php
Répondre
Essayez d'éviter des sessions entre les différents systèmes. Vous ne pouvez pas vraiment partager des sessions entre PHP et Java parce que,
- Ils fonctionnent sous différents processus, peut-être différentes machines. Il n'y a pas de mémoire partagée.
- Leurs structures de données de session sont totalement différentes.
- La sérialisation n'est pas compatible.
- Différentes saveurs de cookies, "PHPSESSID" et "JSESSIONID".
Vous avez à peu près faire vous-même la gestion de session pour partager des sessions. C'est plutôt compliqué. Voici les composants que vous devez écrire,
- Configurez un magasin de session commun, comme un DB ou memcached. La session est stockée en tant que gros blob.
- Concevoir une structure de données de session commune. J'utilise juste des paires nom-valeur. Le même nom doit être utilisé sur les deux systèmes et les valeurs doivent être une chaîne (UTF-8).
- Utilisez une sérialisation commune. J'irais avec PHP session_encode(), qui est assez facile à gérer sur Java.
- Gérez votre propre cookie de session.
# 3, vous pourriez sérialiser votre objet de session avec json_en/decode() sur les deux systèmes. –
Vous pouvez essayer d'utiliser des sessions pilotées par base de données pour résoudre ce problème. En supposant que Tomcat et Apache ont les mêmes hachages de session, il peut être possible de les transférer entre serveurs? Vous devez regarder dans le fichier de configuration de tomcat et il DEVRAIT être sous quelque chose préfixé par la session. C'est là que je commencerais. En règle générale, sur un serveur Linux Ubuntu, ce serait sous quelque chose comme /etc/apache2/apache2.conf. J'espère que cela aide et bonne chance!
Kyle
Je crois que le gestionnaire de session par défaut pour Tomcat stocker les données de session dans un fichier SESSIONS.ser dans le répertoire « travail » pour votre application.
Vous pouvez créer et configurer votre propre gestionnaire de session: http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html
- 1. Comment persistez-vous une session tomcat?
- 2. Comment supprimer une session PHP?
- 3. Partager des données de session entre Rails et PHP
- 4. comment installer php et javabridge sur Tomcat
- 5. Passer des données entre les contrôleurs avec la session RESTfully
- 6. comment passer une variable entre deux viewcontroller?
- 7. PHP passer des messages entre les pages
- 8. Différence entre Session et HttpContext.Current.Session
- 9. Comment passer une session d'une application à une autre?
- 10. Vraiment détruire une session PHP?
- 11. php httprequest class et session
- 12. Sauvegarde de session Jetty/Tomcat
- 13. PHP pfsockopen dans une session
- 14. différence de session entre active_record_store et cookie_store
- 15. Longueur de l'ID de session dans Tomcat
- 16. réplication de session tomcat - exception non sérialisée
- 17. Comment passer une exception entre threads en python
- 18. session php avec flash
- 19. SSO entre ASP.NET, ASP et PHP
- 20. Comment créer une session en PHP avec une chaîne aléatoire?
- 21. Comment désactiver le cookie de session PHP?
- 22. Définir et lire une session
- 23. Passer des paramètres entre JSPs
- 24. Variables de session PHP - disparaissent et réapparaissent
- 25. Passer des variables entre C++ et Lua via Swig
- 26. Passer des sessions ou un état d'authentification entre PHP et ASP.Net
- 27. comment puis-je partager une session asp.net entre http et https
- 28. Comment passer une variable jQuery au code PHP?
- 29. PHP - Comment démarrer une session après l'authentification HTTP
- 30. Communication sécurisée entre script Flash et PHP
: -o Juste par curiosité, qui vous demande cela? Votre chef de projet? Ou votre manager? :) – OscarRyz
Mon chef de projet, oui c'est ce boiteux d'un projet :( –