2009-07-15 93 views
9

Tomcatが生成するセッションIDの長さを変更する必要があります。デフォルトでは32バイトですが、残念ながらセッションIDの長さは20になる必要があります。オンラインで見るとStandardManagerはこれを管理しているようですPersistanceManagerです。TomcatのセッションIDの長さ

sessionIdLengthをtomcat設定で変更できるかどうかは知っていますか?もしそうなら、どのファイル?

代わりに、カスタムManagerを作成して、sessionidLengthを単に上書き/設定することもできます。これは可能ですか?どのように設定でカスタムマネージャを使用するようにtomcatに指示しますか?

+0

、デフォルトは16であると言います。 configパラメータにはバイト数が必要です。デフォルトは16バイト= 32文字です。 –

答えて

9

はい、設定ファイルでStandardManagerを変更できます。 Manager要素は、任意のコンテキスト内にネストすることができます。

したがって、Contextを持つ設定ファイルを変更してください。それはconfディレクトリにあるserver.xmlかもしれません。または、WARファイルのMETA-INFディレクトリにあるcontext.xml。

サーバー全体のデフォルトを指定するには、$ CATALINA_HOME/conf/context.xmlを編集します。 Manager行のコメントを外し、sessionIdLength属性を追加します。

<Manager sessionIdLength="10" /> 
+0

応答のためにありがとう 上記の行を/conf/context.xmlに追加しても効果はありません。これが問題であるかどうかはわかりませんが、contect.xmlにはというタグもあります。 – James

+0

JSESSIONIDクッキーを削除してから、Tomcatを再起動して短いクッキーを取得しなければなりませんでした。 Tomcatはデフォルトで、再起動時にセッション情報をディスクに保存します。だから私はそれが長いクッキーを持続していたと思うし、起動時にそれを戻しています。だから、JSESSIONIDクッキーを削除して、Tomcatを再起動してみてください。うまくいけば、望みの結果になるでしょう。 –

1

あなたのTomcatのcontext.xml(またはどこだマネージャーが定義されている)の要素にsessionIdLength属性を追加します。

ちなみに、the docsはそれが32文字ではなく32のバイトだない32

+1

文書は16バイトと言っています。 Cookieは16進数でエンコードされているため、32 = 16 – Jason

関連する問題