2014-01-13 44 views
0

當前Spring應用程序需要添加來自POJO庫的其他身份驗證檢查。 POJO庫包括幾個定製的認證模塊可供選擇。有些可能非常簡單,比如從數據庫或文件中檢查URL中的用戶名和加密密碼,其他可以通過LDAP身份驗證或Web Service身份驗證。針對此要求的Spring Security的最佳做法

棘手的部分是當前的應用程序在security.xml中有自己的認證方法,我們不想妥協任何一個。

我的目標是使這項工作基於最小的變化。

我覺得可能是這幾個解決方案,但試圖獲得一個很好的做法:

  1. 定製一個春天authentication provider處理POJO認證的認證管理
  2. 自定義春pre-authentication(或東西一樣)爲pojo bean,讓應用程序的安全性做下一個。
  3. 擴展filter class並在web.xml中註冊,這樣可以對現有的彈簧安全上下文做最小的更改,但我不確定如何使此句柄成爲LDAP和WS身份驗證。

和許多其他選項,如果任何人都可以提供更好的提示。提前致謝。

+0

您是否嘗試過使用自定義身份驗證管理器,結果如何? –

回答

1

創建一個自定義Spring身份驗證管理器,用於擴展已存在的身份驗證管理器。調用super.authenticate(),如果通過,然後添加額外的認證邏輯。

+0

謝謝。我沒有嘗試自定義的'AuthenticationManager',而是一個自定義的'AuthenticationProvider',但現在很難在'loadUserDetails'方法內攔截'HTTPServletRequest'和'HTTPServletResonse' – Dreamer