2012-01-23 43 views
5

tôi sử dụng Xuân An 3 trong webapp JSF2 tôi.mùa xuân phiên an ninh timeout

tôi có một quy tắc an ninh để cung cấp timeouts phiên:

<session-management invalid-session-url="/faces/paginas/autenticacion/login.xhtml?error=1" /> 

Vì vậy mà khi phiên đã hết hạn và người dùng nhấp vào bất kỳ liên kết, ông được chuyển hướng đến trang đăng nhập. Trong trang này, tôi kiểm tra thông số lỗi và hiển thị thông báo cho người dùng nói rằng phiên đã hết hạn.

Nhưng tôi có 2 vấn đề:

(1) Khi tôi khởi động ứng dụng lần đầu tiên (nó cố gắng để hiển thị các trang nhà), tôi đang chuyển hướng đến trang đăng nhập nói phiên đã hết hạn. Tôi nghĩ rằng điều này có thể xảy ra bởi vì lần đầu tiên bạn chạy ứng dụng, phiên là một phiên mới, và Spring Security có lẽ "nghĩ" anh đã hết hạn (không phân biệt betwen phiên mới và thời gian chờ).

(2) Nếu phiên giao dịch đã hết hạn cho người dùng vô danh (chưa được xác nhận), tôi đang chuyển hướng đến thời gian chờ trang đăng nhập quá. Tôi không muốn hành vi này cho người dùng không được xác thực, tôi chỉ muốn kiểm tra thời gian chờ cho người dùng được xác thực.

Làm thế nào tôi có thể giải quyết tất cả những vấn đề này?

Cảm ơn bạn trước.

Trả lời

6

Bạn muốn sử dụng thuộc tính expired-session-url cho các phiên đã hết hạn, không phải là invalid-session-url. Chúng dành cho hai thứ khác nhau.

+0

Tôi đang sử dụng phiên bản 3.0.7 của Xuân An, và không có "hết hạn phiên-url" bất động sản trong đó. Trong Tài liệu tham khảo của 3.0.7, họ sử dụng thuộc tính "không hợp lệ phiên url" để phát hiện thời gian chờ (trang số 15 của tài liệu pdf). Nhưng, như bạn nói, phiên không hợp lệ không giống với phiên hết hạn. Bạn có biết giải pháp nào không? – choquero70

+0

Để có được sự linh hoạt mà bạn đang tìm kiếm (có thể phân biệt giữa các phiên bị thiếu và không hợp lệ), bạn có thể cần phải chuyển sang cấu hình nâng cao hơn một chút. Section11.3 của các tài liệu chỉ ra rằng có _is_ một tài sản expiredUrl' 'trên bộ lọc đồng thời: http://static.springsource.org/spring-security/site/docs/3.0.x/reference/session-mgmt.html – cdeszaq

+0

Câu trả lời này cũng có thể giúp bạn: http://stackoverflow.com/questions/2693268/spring-security-session-expiration-without-redirect-to-expired-url – cdeszaq

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