第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

針對客戶和員工的 Spring Security 用戶身份驗證

針對客戶和員工的 Spring Security 用戶身份驗證

湖上湖 2023-07-28 15:27:06
我是 Spring Security 的新手。我有一個帶有兩種不同類型實體的 Spring Boot 應用程序??蛻艉蛦T工。在員工中,我有普通員工、管理員和超級用戶。由于我使用 JPA,每個實體都有自己的repository. 如何對我的模型進行建模UserDetailsService,loadUserByUsername因為這是針對許多存儲庫進行驗證的常用方法。我是否缺少任何圍繞我的實體建模的東西?附加信息:在我的設計中,我有兩個實體。Customer和Employee。Employee將有諸如NORMAL、ADMIN和 之類的角色SUPER_USER。客戶是一個不同的實體。是否會有兩個UserDetailsService和兩個 AuthenticationProvider 分別指向自己的表(Customer 和 Employee)?
查看完整描述

2 回答

?
眼眸繁星

TA貢獻1873條經(jīng)驗 獲得超9個贊

由于您的要求是擁有多個身份驗證入口點,因此它并不像 Atul 的答案那么簡單。

你需要的是

  1. 您需要在登錄時區(qū)分客戶和員工。(首選方式單選按鈕)

  2. 您需要實現(xiàn)自定義身份驗證過濾器,即實現(xiàn)UsernamePasswordAuthenticationFilter代替 spring-security 提供的默認值.formLogin()

  3. 創(chuàng)建兩個UsernamePasswordAuthenticationTokenasEmployeeUsernamePasswordAuthenticationTokenCustomerUsernamePasswordAuthenticationToken

  4. 在您的自定義過濾器中,從請求中獲取 userType,并根據(jù) userType 將 authToken 設置為 empAuthToken 或 customerAuthToken 以區(qū)分所需的身份驗證提供程序。

  5. 創(chuàng)建AuthenticationProviderEmployeeCustomAuthenticationProviderCustomerCustomAuthenticationProvider在每個AuthenticationProvider應該重寫的地方支持方法,其中 AuthenticationProvider 支持特定令牌(customerAuthToken 或 employeeAuthToken)。

  6. 覆蓋身份驗證方法,其中身份驗證方法已通過身份驗證參數(shù)傳遞,您可以從中獲取用戶名和密碼,您可以將其傳遞給任何自定義服務以對用戶進行身份驗證并授予用戶所需的權(quán)限。

在實現(xiàn) CustomAuthenticationFilter 時,還需要提供自定義的authenticationSuccessHandler 和 AuthenticationFailureHandlers。

如果您實現(xiàn)上述所有內(nèi)容而沒有任何錯誤,則可以避免在配置了兩個 customAuthenticationProvider 的情況下 spring-security 默認提供的回退身份驗證。

查看完整回答
反對 回復 2023-07-28
?
胡說叔叔

TA貢獻1804條經(jīng)驗 獲得超8個贊

“是否會有兩個 UserDetailsService 和兩個 AuthenticationProvider 分別指向自己的表(Customer 和 Employee)?” ......答案是肯定的。

Spring security有過濾器,UsernamePasswordAuthenticationFilter(檢查過濾器的名稱),您可以根據(jù)輸入類型來實現(xiàn)具體的實現(xiàn)。

我做了同樣的事情,但是針對不同的身份驗證機制。但根據(jù)您的要求,這可能是您想要的。


查看完整回答
反對 回復 2023-07-28
  • 2 回答
  • 0 關(guān)注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號