Câu hỏi này có liên quan đến câu hỏi khác của tôi "How to redirect to Login page when Session is expired in Java web application?". Dưới đây là những gì tôi đang cố gắng để làm:Xử lý 'phiên hết hạn' trong ứng dụng web JSF, chạy trong JBoss AS 5
- Tôi đã một ứng dụng JSF web chạy trên JBoss AS 5
- Khi người dùng không hoạt động trong, nói 15 phút, tôi cần phải đăng xuất người sử dụng và chuyển hướng anh ta đến trang đăng nhập, nếu anh ta đang cố gắng sử dụng ứng dụng sau khi phiên hết hạn.
- Vì vậy, như được đề xuất trong 'JSF Logout and Redirect', tôi đã triển khai bộ lọc kiểm tra điều kiện đã hết hạn phiên và chuyển hướng người dùng đến trang phiên-thời gian-out.jsp, nếu phiên đã hết hạn.
- Tôi đã thêm SessionExpiryCheckFilter lên trên tất cả các định nghĩa bộ lọc khác trong web.xml, do đó, kiểm tra hết hạn phiên của tôi sẽ nhận được lần truy cập đầu tiên luôn.
Bây giờ đến thử thách Tôi đang đối mặt với. Vì tôi đang sử dụng JBoss AS, khi phiên hết hạn, JBoss sẽ tự động chuyển hướng tôi đến trang đăng nhập (lưu ý rằng bộ lọc kiểm tra hết hạn phiên không được gọi). Vì vậy, sau khi tôi đăng nhập, SessionExpiryCheckFilter của tôi chặn yêu cầu và nó thấy một phiên có sẵn. Tuy nhiên, nó ném ngoại lệ javax.faces.application.ViewExpiredException: viewId:/mypage.faces - View /mypage.faces could not be restored.
Có ai phải đối mặt với vấn đề này trước đây không? Bất kỳ ý tưởng nào để giải quyết vấn đề này?
Bạn đang sử dụng đường may? –
Không. Tôi không sử dụng Seam. – Veera
Bạn có đang sử dụng Facelets hoặc JSP không? – mtpettyp