Tôi đang cố đặt cờ httponly trên cookie JSESSIONID. Tuy nhiên, tôi đang làm việc trong Java EE 5 và không thể sử dụng setHttpOnly()
. Trước tiên, tôi đã cố gắng tạo cookie JSESSIONID của riêng mình từ trong số doPost()
của servlet bằng cách sử dụng response.setHeader()
.Đặt httponly trong cookie JSESSIONID (Java EE 5)
Khi điều đó không hiệu quả, tôi đã thử response.addHeader()
. Điều đó cũng không hiệu quả. Sau đó, tôi đã học được rằng servlet đã xử lý chuyển đổi phiên thành một cookie JSESSIONID và chèn nó vào tiêu đề http vì vậy nếu tôi muốn chơi với cookie đó, tôi sẽ phải viết một bộ lọc. Tôi đã viết một bộ lọc và chơi với setHeader()
/addHeader()
ở đó, một lần nữa không có kết quả. Sau đó, tôi đã học được rằng có một số hành động xả/đóng đang diễn ra trong đối tượng phản hồi trước khi nó vào bộ lọc vì vậy nếu tôi muốn thao tác dữ liệu, tôi cần mở rộng HttpServletResponseWrapper
và chuyển nó tới filterChain.doFilter()
. Điều này được thực hiện nhưng tôi vẫn chưa nhận được kết quả. Rõ ràng tôi đang làm điều gì đó sai trái nhưng tôi không biết điều gì.
Tôi không chắc chắn nếu điều này là có liên quan đến tất cả các câu hỏi trong tầm tay nhưng không có tài liệu html đang được trả lại bởi servlet cho trình duyệt. Tất cả những gì thực sự xảy ra là một số đối tượng đang được phổ biến và trả về một tài liệu JSP. Tôi đã giả định rằng đối tượng Session được chuyển thành một cookie JSESSIONID và được gói - cùng với các đối tượng được thêm vào yêu cầu - trong tiêu đề http trước khi được gửi đến trình duyệt.
Tôi rất sẵn lòng đăng một số mã nhưng tôi muốn loại trừ khả năng khó khăn của tôi xuất phát từ sự hiểu lầm của lý thuyết đầu tiên.
thêm một số mã định dạng vì Othe rwise nó là một chút của một bức tường văn bản không thể chấp nhận được. Có thể vẫn xem xét việc đăng mã mẫu của những gì bạn đã thử. –