2016-05-05 18 views

回答

0

我們需要更多的細節才能夠給出完整的答案。但總體思路如下:

  • 首先,請記住AuthenticationProvider s(並且應該保留)不知道web上下文。它們旨在驗證Authentication對象,並且它們可以(也應該)像在EE或桌面應用程序中一樣運行在Web應用程序中。
  • 您應該創建自己的認證對象(在那種情況下UsernamePasswordAuthenticationToken一個子類),將舉行新/自定義屬性,讓我們把它CustomToken有一個新的屬性customProp(你真的應該選擇更有意義的名稱:))
  • 您應該繼承UsernamePasswordAuthenticationFilter以便能夠訪問請求參數並將您需要的內容放入您的認證對象中:方法setDetailsUsernamePasswordAuthenticationFilter完全符合該需求,因此只需在您的子類中重寫該方法即可。不要忘記配置新的子類以用於彈簧安全配置而不是UsernamePasswordAuthenticationFilter
  • 在您的CustomProvider中,您現在可以將身份驗證對象轉換爲CustomToken並從該身份驗證對象中檢索添加的屬性(customProp)。
+0

感謝哈姆迪的答覆 –

+0

更多詳細信息: - 我們有兩個表,我們正在存儲用戶的細節,以檢查證件,我們有我們自己的CustomAuthenticationProvider延伸DaoAuthenticationProvider的時候。現在基於在認證過程中從前端提供的附加參數,我們需要決定表以獲取哈希密碼來檢查。 –

+0

感謝您的詳細信息。我建議的解決方案完全適用。請告訴我,如果有什麼不清楚,或者接受其他答案。 –

相關問題