我有一個使用自定義的身份驗證管理器進行登錄的應用程序。它只是在名爲Users的表上搜索。來自不同URL的不同登錄
<sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider user-service-ref="userDAOImpl">
<sec:password-encoder hash="sha" />
</sec:authentication-provider>
</sec:authentication-manager>
問題是,現在我需要做另一個登錄,必須在表「ExternalUsers」上搜索。
的應用將工作過程是這樣:
- 如果請求來自像/外部的URL/**我需要經過一個一個authenticationManager2其搜索在桌子上「ExternalUsers」。這些用戶只能訪問/ external/** url
- 它的請求來自另一個url,我需要通過一個authenticationManager1(我現在擁有的那個)在表上搜索用戶。這些用戶可以訪問所有的網址,但該模式匹配的那些/外部/ **
可能存在用戶與相同的用戶名錶用戶和ExternalUsers 。這就是爲什麼我需要根據URL來源設置不同的登錄名的原因。兩個登錄名都必須在同一個應用程序中。
是否有可能在Spring中配置兩個不同的認證管理器,每個認證管理器都取決於請求的URL地址?
謝謝
但是,authenticationManager的實現如何知道請求的url? – Javi 2011-04-13 13:24:30
@Javi:我的錯:身份驗證提供程序不是管理員 – Ralph 2011-04-13 13:52:44