2009-07-15 8 views
9

Nous devons modifier la longueur de l'ID de session générée par tomcat. Par défaut, il est de 32 octets, malheureusement, nous avons besoin d'une longueur d'identification de session de 20. En regardant en ligne, je peux voir le StandardManager semble gérer cela qui s'étend PersistanceManager.Longueur de l'ID de session dans Tomcat

Est-ce que quelqu'un sait si le sessionIdLength peut être modifié dans la configuration de tomcat? Si oui, quels fichiers?

Une alternative serait de créer un Manager personnalisé qui remplace/définit simplement le sessionidLength. Est-ce possible? Comment dites-vous à Tomcat d'utiliser le gestionnaire personnalisé dans la configuration?

+0

Il est 32 caractères et pas 32 octets. Le paramètre config attend le nombre d'octets. La valeur par défaut est 16 octets = 32 caractères. –

Répondre

9

Oui, vous pouvez modifier le fichier StandardManager via le fichier de configuration. L'élément Manager peut être imbriqué dans n'importe quel contexte. Donc, modifiez le fichier de configuration qui a votre Contexte. Ce peut être le fichier server.xml situé dans le répertoire conf. Ou un context.xml situé dans le répertoire META-INF de votre fichier war.

Pour fournir une valeur par défaut pour l'ensemble du serveur, modifiez votre fichier $ CATALINA_HOME/conf/context.xml. Décommentez la ligne Manager et ajoutez l'attribut sessionIdLength.

<Manager sessionIdLength="10" /> 
+0

Merci pour la réponse, J'ai ajouté la ligne ci-dessus à mon /conf/context.xml sans effet. Je ne suis pas sûr si c'est un problème mais j'ai aussi les balises et dans le contect.xml. – James

+0

J'ai dû supprimer mon cookie JSESSIONID, puis redémarrer Tomcat pour obtenir un cookie plus court. Par défaut, Tomcat conserve les informations de session sur le disque lors d'un redémarrage. Donc, je pense qu'il persistait le cookie plus long, et le chargement au démarrage. Donc, essayez de supprimer votre cookie JSESSIONID, redémarrez Tomcat. Espérons que cela se traduira par le résultat souhaité. –

1

Ajoutez l'attribut sessionIdLength à l'élément de votre context.xml de Tomcat (ou où que vous soyez Encadrant).

Soit dit en passant, the docs dire que la valeur par défaut est 16, pas 32.

+1

Les docs disent 16 octets. Le cookie est codé en hexadécimal, donc 32 = 16 – Jason

Questions connexes