2014-01-06 136 views
0

當前Spring應用程序需要進行用戶身份驗證非常特殊的方式:在這種情況下應該定製哪個認證層?

用戶進入通過與用戶名(輸入字段)和身份驗證方法(下拉框)形式的應用和..potentially密碼(輸入域)如果需要的話,那麼用戶應該能夠登錄所提供的身份驗證方法和憑證的應用(用戶名和密碼可能並不需要,如果使用LDAP等)

因此,在這種情況下,我想

<AuthenticationManager> 
    <BASICAuthenticationProvider/> 
    <DAOAuthenticationProvider/> 
    <LDAPAuthenticationProvider/> 
    ...... 
</AuthenticationManager> 

做不適用於這種情況。我是Spring Security的新手,經過一番研究,我發現有幾個地方可能需要定製這種情況:AuthenticationManager,AuthenticationProvider,PreAuthenticationFilter等,但不知道那裏開始。 然後哪些類應該被覆蓋? AuthenticationProvider的?或預認證?甚至AuthenticationManager? Spring安全似乎有很多,但我不確定主角在哪裏。我檢查官方文件,但找不到類似於這種情況的解決方案。

在此先感謝。

+1

對不起,但是什麼問題? –

+0

@Elliott Frisch只需更新問題,對於混淆感到抱歉。 – Dreamer

+0

什麼是「非常具體的方式」?請給我們一個示例URL。 –

回答

1

您需要先從一些這樣的事

<authentication-manager> 
    <authentication-provider user-service-ref="authenticationService"> 
    </authentication-provider> 
</authentication-manager> 

的AuthenticationService需要實現的UserDetailsS​​ervice(這是它加載用戶特定數據的核心接口)。在這裏你可以重載loadUserByUsername方法並提供一個可以獲取用戶詳細信息的數據庫。

相關問題