2009-08-20 5 views
3

J'ai besoin de savoir quelle classe de Tomcat (6.x) est responsable de placer le SessionID dans un cookie ou de l'ajouter à la requête. Est-ce fait après que tous les filtres sont passés?Apache Tomcat (6.x) Emplacement SessionID

J'ai besoin de modifier le SessionID avant que la réponse est envoyée au navigateur ...

Répondre

5

L'ID de session est définie par la session Tomcat Manager - il y a un certain nombre de différentes implémentations. Si vous modifiez l'ID de session pendant l'exécution de votre application, vous risquez de casser certaines des hypothèses formulées par le gestionnaire de session.

Pour modifier l'ID, vous devez implémenter votre propre gestionnaire de session. La façon "standard" de le faire est d'étendre ManagerBase. Vous pouvez également étendre StandardManager et remplacer generateSessionId(). Pour obtenir Tomcat utiliser votre session gestionnaire personnalisé, jetez un oeil à la Context et la configuration Manager dans server.xml

Soyez très prudent lorsque vous générer vos propres identifiants de session. Un serveur ne peut pas savoir si un ID dans un cookie est valide. Si un attaquant peut deviner votre séquence d'ID, il peut voler des sessions d'autres utilisateurs en définissant simplement des valeurs de cookie dans son client HTTP.