2011-02-08 37 views
18

Cách tốt nhất để đặt ngày hết hạn cho cookie JSESSIONID được Tomcat gửi cho phiên servlet là gì?Cookie JSESSIONID có ngày hết hạn trong Tomcat

Theo mặc định, ngày hết hạn của cookie có vẻ là 'phiên', có nghĩa là phiên sẽ biến mất trong ứng dụng ngay sau khi trình duyệt khởi động lại. Nhưng tôi muốn giữ nó mở cho 12h, ngay cả sau khi một trình duyệt khởi động lại (và sau đó sẽ cấu hình thời gian chờ phiên trong máy chủ cho phù hợp).

Có cách nào để đặt ngày hết hạn trong Tomcat hay không, ví dụ: sử dụng một số tùy chọn cấu hình hoặc mô-đun mở rộng? Hoặc có cách nào đáng tin cậy để đặt ngày hết hạn cho JSESSIONID bằng bộ lọc Servlet không?

+0

hi Tim, Tôi đang mắc kẹt trong một vấn đề tương tự. Bạn đã chọn giải pháp nào và bạn đã thành công trong những gì bạn đang cố gắng đạt được, hãy trợ giúp! – Ashish

Trả lời

51

Tôi biết đây là một câu hỏi cũ, nhưng nếu bất cứ ai khác đang tìm kiếm thông tin này:

Trong Servlet 3.0, điều này có thể chỉ đơn giản là được quy định trong web.xml:

<session-config> 
    <session-timeout>525600</session-timeout> 
    <cookie-config> 
     <max-age>31536000</max-age> 
    </cookie-config> 
</session-config> 
+0

tôi đã. cảm ơn bạn. –

+0

Yup, điều này chứng minh nó không bao giờ muộn để thêm thông tin mới cho một câu hỏi, miễn là nó là thông tin tốt! Cảm ơn bạn đã giúp tôi. –

+2

một lần nữa một số thông tin muộn, nhưng fwiw, phiên-thời gian chờ là trong minues, max-age trong vài giây! –

-2

Nếu bạn muốn phiên sắp hết hạn sau 12 giờ và tồn khởi động lại máy chủ, thêm video này vào web.xml của bạn:

<session-config> 
    <session-timeout>720</session-timeout> 
</session-config> 

Tomcat được cấu hình theo mặc định để serialise phiên để họ sống sót khởi động lại ứng dụng. Xem http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html#Restart%20Persistence

+5

Thật không may là hiệu ứng duy nhất của là máy chủ lưu trữ các phiên trong 12h. Tuy nhiên trong trình duyệt, cookie vẫn được đặt mà không có ngày hết hạn và do đó sẽ biến mất ngay sau khi trình duyệt bị đóng. –

1

Tôi không nghĩ rằng nó có thể làm những gì bạn muốn, mà không thay đổi mã Tomcat. Tuy nhiên, lưu ý rằng nó có thể có tác dụng phụ khó chịu: nếu người dùng bắt đầu phiên và vẫn hoạt động trong 12 giờ, thời gian chờ của phiên sẽ được cập nhật tương ứng (thời gian chờ sẽ được cập nhật theo yêu cầu), nhưng cookie của nó đã thắng 't, và do đó người dùng sẽ mất phiên của nó sau 12 giờ, ngay cả khi anh ta hoạt động tất cả thời gian này.

Các vấn đề liên quan