2011-09-27 21 views
5

Tôi đang tìm cách tắt jsessionid khỏi việc sử dụng trong tiêu đề https. Có cách nào để tắt hoặc tắt tính năng này được đặt làm cookie trong tomcat 7 không?Vô hiệu hóa jsessionid qua tiêu đề http (cookie) trong Tomcat 7

Tôi muốn jsessionid được nhúng vào cặp giá trị tên url của phương thức GET hoặc là một phần của cặp giá trị tên yêu cầu POST.

Tôi biết tất cả những lợi thế và bất lợi của việc sử dụng phiên làm việc dựa trên cookie và ghi đè url nhưng tôi có các nhu cầu cụ thể về các dịch vụ web an toàn cụ thể.

Tôi cần tomcat 7 chấp nhận jsessionid mà không sử dụng tiêu đề http: jsessionid.

Cảm ơn.

UPDATE:

vì vậy tôi nhìn quanh một số chi tiết và thấy this đó được thực hiện bằng cách sử dụng conf web.xml.
Tuy nhiên sau đây dường như không làm việc với Tomcat 7.

<session-config> 
    <tracking-mode>URL</tracking-mode> 
</session-config> 

là nó là một trường hợp TC7 không thực hiện đầy đủ các đặc tả servlet 3.0?

Trả lời

4

Cài đặt web.xml hoạt động với tôi với Tomcat 7.0.20.

Log và kiểm tra các chế độ theo dõi hiệu quả (và có thể mặc định) phiên:

logger.info("default STM: {}" , servletContext.getDefaultSessionTrackingModes()); 
logger.info("effective STM: {}" , servletContext.getEffectiveSessionTrackingModes()); 

Có lẽ ứng dụng của bạn ghi đè lên đâu đó trong mã phiên chế độ theo dõi. Ví dụ:

final Set<SessionTrackingMode> trackingModes = 
    Collections.singleton(SessionTrackingMode.COOKIE); 
servletContext.setSessionTrackingModes(trackingModes); 

Kiểm tra ServletContext.setSessionTrackingModes() cuộc gọi trong mã của bạn.

Cũng có thể to set default session tracking modes in the Tomcat's context settings nhưng tôi thấy rằng cài đặt web.xml ghi đè chúng.