2013-10-08 106 views
0

我們使用的是Spring Security,它在單個Web應用程序中正常工作。現在,我需要用Spring安全性創建另一個Web應用程序。在第一個應用中,用戶可以出售他/她的東西(例如eBay)。我現在創建的第二個應用程序,對於一般用戶來說,他可以保存他的一般偏好,搜索,保存他所查看的一些項目等。他可能/可能不是現有用戶。所以兩個用戶的區別是: 用戶1(現有用戶):可以發佈他的東西出售。 用戶2:他/她應該可以登錄。保存他的一般活動等&如果他/她想出售他/她的物品,他/她需要通過額外的步驟進行驗證。在多個Web應用程序中實現安全性的最佳實踐

由於某些原因,所有這些只能在一個應用程序中完成。我的問題是如何處理安全問題?我應該爲每個應用程序創建單獨的安全篩選器還是有辦法使用可以管理這兩個應用程序的通用安全實現。請提供您的反饋,我會很感激。

回答

0

如果你將兩個組件包裝在兩個不同的webapps中,每個組件都有自己的spring安全web過濾器基礎設施。 因此,原則上每個Web應用程序都會有一個安全會話,由您使用的任何身份驗證系統支持。 如果您使用JDBC,那麼用戶將不得不登錄兩次。

如果您希望您的客戶只登錄一次,您可以使用基於標記的系統。 當您從webapp 1交叉鏈接到webapp 2時,您可以將鏈接掛鉤到重定向servlet。 然後,servlet生成一個令牌,將其保存在數據庫中,並將帶有該令牌的用戶轉發給另一個webapp。 在彈簧安全中,您可以實現自己的PRE_AUTH_FILTER,它讀出令牌,驗證它是否在數據庫中保留。 出於安全原因,您應該只使用這些令牌。