Khi khách hàng chưa được xác thực yêu cầu URL yêu cầu cấp truy cập không ẩn danh như được xác định trong security-config.xml
, bảo mật mùa xuân sẽ gửi chuyển hướng HTTP đến trang đăng nhập của chúng tôi (ví dụ: /login
). Đó là tốt.Làm cách nào để ngăn chặn bảo mật mùa xuân khỏi việc thêm; jsessionid = XXX để đăng nhập chuyển hướng?
Vấn đề là vắng mặt phiên hiện tại (được xác định bằng cookie được cung cấp trong yêu cầu của khách hàng), bảo mật mùa xuân đưa ra chuyển hướng cũng chỉ định phiên mới của khách hàng trong URL, ví dụ: /login;jsessionid=8o7pglapojus
.
Nhiều thùng chứa hỗ trợ điều này (dường như nó hoạt động tốt trong tomcat?), Nhưng dường như Jetty (đó là những gì chúng tôi đang sử dụng ngay bây giờ) không - URL được chuyển hướng đi qua bộ định tuyến URL của chúng tôi hoàn toàn nguyên vẹn (bao gồm thông số jsessionid
") và phiên được đặt tên không được liên kết với yêu cầu /login
bởi cầu cảng/bảo mật mùa xuân (nghĩa là ID phiên hoàn toàn mới được cung cấp trong tiêu đề Set-Cookie của phản hồi với yêu cầu /login
).
Chúng tôi có thể giải quyết vấn đề này bằng cách khớp với /login.*
trong các tuyến đường của chúng tôi, nhưng tôi tò mò nếu có cách nào để ngăn chặn sự phát xạ id phiên trong chuyển hướng xác thực để bắt đầu.
@BalusC nào biết giải pháp trước mùa xuân 3? – Xorty
@Xorty Hãy xem http://fralef.org/tomcat-disable-jsessionid-in-url.html, nếu nâng cấp lên Spring Security 3+ không phải là một tùy chọn. –