2009-07-15 6 views
9

Abbiamo bisogno di cambiare la lunghezza dell'ID sessione generata da tomcat. Per impostazione predefinita è 32 byte, purtroppo abbiamo bisogno di una lunghezza ID di sessione di 20. Guardando online vedo che il StandardManager sembra gestire questo che estende PersistanceManager.Lunghezza ID sessione in Tomcat

Qualcuno sa se il sessionIdLength può essere modificato nella configurazione di tomcat? Se sì, quali file?

Un'alternativa sarebbe quella di creare un numero personalizzato Manager che semplicemente sovrascrive/imposta lo sessionidLength. È possibile? Come si dice a Tomcat di utilizzare il gestore personalizzato nella configurazione?

+0

E 'di 32 caratteri e non 32 byte. Il parametro config prevede il numero di byte. Il valore predefinito è 16 byte = 32 caratteri. –

risposta

9

Sì, è possibile modificare lo StandardManager tramite il file di configurazione. L'elemento Manager può essere annidato in qualsiasi contesto.

Quindi, modificare qualsiasi file di configurazione con il proprio contesto. Potrebbe essere il server.xml che si trova nella directory conf. O un context.xml che si trova nella directory META-INF del tuo file di guerra.

Per fornire un valore predefinito per l'intero server, modificare $ CATALINA_HOME/conf/context.xml. Decommentare la riga Manager e aggiungere l'attributo sessionIdLength.

<Manager sessionIdLength="10" /> 
+0

Grazie per la risposta, Ho aggiunto la riga sopra al mio /conf/context.xml senza alcun effetto. Non sono sicuro che si tratti di un problema, ma ho anche i tag e nel file contect.xml. – James

+0

Ho dovuto eliminare il mio cookie JSESSIONID, quindi riavviare Tomcat per ottenere un cookie più breve. Tomcat per impostazione predefinita mantiene le informazioni sulla sessione su disco durante il riavvio. Quindi penso che persistesse il cookie più lungo e lo ricollegasse all'avvio. Quindi, prova a eliminare il cookie JSESSIONID, riavvia Tomcat. Speriamo che questo comporterà il risultato desiderato. –

1

Aggiungere l'attributo sessionIdLength all'elemento del Tomcat del context.xml (o ovunque vi sentiate manager è definito).

Per inciso, the docs dicono che il valore predefinito è 16, non 32.

+1

I documenti dicono 16 byte. Il cookie è codificato come esadecimale, quindi 32 = 16 – Jason