2009-07-15 2 views
9

Chúng tôi cần thay đổi độ dài ID phiên do tomcat tạo. Theo mặc định nó là 32 byte, tiếc là chúng ta cần một chiều dài ID phiên 20. Nhìn trực tuyến tôi có thể thấy StandardManager dường như để quản lý điều này kéo dài PersistanceManager.Độ dài phiên của phiên trong Tomcat

Có ai biết nếu sessionIdLength có thể được sửa đổi trong cấu hình tomcat không? Nếu có thì sao?

Cách khác là tạo một tùy chỉnh Manager chỉ cần ghi đè/đặt số sessionidLength. Điều này có thể không? Làm thế nào để bạn nói với tomcat để sử dụng quản lý tùy chỉnh trong cấu hình?

+0

Đó là 32 ký tự chứ không phải 32 byte. Tham số config mong đợi số byte. Mặc định là 16 byte = 32 ký tự. –

Trả lời

9

Có, bạn có thể sửa đổi StandardManager thông qua tệp cấu hình. Phần tử Manager có thể được lồng trong bất kỳ Ngữ cảnh nào.

Vì vậy, hãy sửa đổi bất kỳ tệp cấu hình nào có Ngữ cảnh của bạn. Nó có thể là server.xml nằm trong thư mục conf. Hoặc một tệp ngữ cảnh nằm trong thư mục META-INF của tệp chiến tranh của bạn.

Để cung cấp mặc định cho toàn bộ máy chủ, hãy chỉnh sửa $ CATALINA_HOME/conf/context.xml của bạn. Bỏ ghi chú dòng Manager và thêm thuộc tính sessionIdLength.

<Manager sessionIdLength="10" /> 
+0

Cảm ơn bạn đã phản hồi, Tôi đã thêm dòng trên vào /conf/context.xml của mình mà không có hiệu lực. Tôi không chắc đây có phải là vấn đề hay không nhưng tôi cũng có các thẻ trong contect.xml. – James

+0

Tôi phải xóa cookie JSESSIONID của mình, sau đó khởi động lại Tomcat để nhận cookie ngắn hơn. Tomcat theo mặc định sẽ duy trì thông tin phiên vào đĩa trong khi khởi động lại. Vì vậy, tôi nghĩ rằng nó đã tồn tại lâu hơn cookie, và tải nó trở lại khi khởi động. Vì vậy, hãy thử xóa cookie JSESSIONID của bạn, khởi động lại Tomcat. Hy vọng rằng sẽ cho kết quả mong muốn. –

1

Thêm thuộc tính sessionIdLength đến các yếu tố của Tomcat của bạn context.xml (hoặc bất cứ nơi nào bạn quản lý đang được xác định).

Ngẫu nhiên, the docs cho biết mặc định là 16, không phải 32.

+1

Các tài liệu nói 16 byte. Cookie được mã hóa dưới dạng hex, vì vậy 32 = 16 – Jason