Tôi cần phải có ứng dụng web thực sự bao gồm từ vài cuộc chiến riêng biệt thống nhất thành cùng một thanh điều hướng trên giao diện người dùng, tôi cần phải có tất cả bảo mật hệ thống nhưng chỉ có xác thực đối với ứng dụng web chính và sau khi truyền tự động bối cảnh bảo mật này cho các ứng dụng web phụ. Tôi đang sử dụng bảo mật mùa xuân, ai đó có thể giúp tôi với lời khuyên? thanksChia sẻ bảo mật giữa các ứng dụng web
Trả lời
Bảo mật mùa xuân lưu trữ dữ liệu đăng nhập trong phiên http. Vì vậy, những gì tôi sẽ cố gắng là để chia sẻ phiên giữa các ứng dụng.
Đường nối có thể thực hiện được (trong Tomcat) bằng cách sử dụng thuộc tính Single Sing On.
Nhưng được cảnh báo, việc chia sẻ phiên giữa hai ứng dụng không phải là không có nguy hiểm. Xem this Stack Overflow question.
Điều này có thể đạt được bằng cách tiếp cận sau. Vào mùa xuân, SecurityContext
theo mặc định được lưu trữ trong HttpSession
. Thay vào đó bạn có thể cấu hình nó để lưu trữ trong một số kho lưu trữ được chia sẻ.
Vì vậy, cấu hình phải được thay đổi để sử dụng triển khai SecurityContextRepository
của riêng bạn thay vì HttpSessionSecurityContextRepository
. Sau khi được cấu hình, khung bảo mật sẽ xem xét Repository
có sẵn cho tất cả các ứng dụng web của bạn.
Repository
có thể là cơ sở dữ liệu hoặc máy chủ được lưu trong bộ nhớ cache.
Hãy làm rõ - là của bạn WARs được đóng gói thành đơn EAR? –
nope, các cuộc chiến hoàn toàn riêng biệt trong cùng một thùng chứa servlet, tôi chỉ cần tuyên truyền authentification cho họ sau khi người dùng loggined vào ứng dụng chính, suy nghĩ đầu tiên là mã thông báo bảo mật trên cookie, nhưng nó dường như không quá mạnh mẽ – Fagoter
Dù bằng cách nào nó có vẻ như bạn nên sử dụng CAS (xem trong tài liệu mùa xuân cho rằng) –