簡體   English   中英

spring認證提供者VS認證處理過濾器

[英]spring authentication provider VS authentication processing filter

spring身份驗證提供程序和身份驗證處理過濾器都還需要向authenticationManager注冊?

身份驗證提供者,我可以使用自定義身份驗證提供者標簽

但是spring身份驗證提供程序和身份驗證處理過濾器有什么不同?

認證管理器使用所有認證提供程序來認證它必須認證的認證令牌。

認證處理過濾器僅添加令牌(用戶名密碼)。 其他過濾器也添加令牌。 例如AnonymousProcessingFilter。

這個想法是將令牌生成與令牌身份驗證分開。 這樣,您可以輕松實現針對多個來源的身份驗證之類的功能。

常規情況是每個令牌生成器只有一個提供程序。

根據Spring Security Architecture ,過程為:

  1. 過濾器用於攔截http請求並進行一些檢查
  2. 一些過濾器正在檢查請求標頭,正文,Cookie等中的授權信息。您可以將它們稱為Authentication Processing過濾器
  3. 身份驗證的實際工作由另一個稱為“身份驗證提供程序”的參與者完成,因為如果實現需要過濾器,它將調用提供程序。
  4. 可能發生的情況是,篩選器和提供者之間可以保留一個提供者管理器,該管理器可以一一調用所有提供者,並查看其中是否有一部分可以處理它(如果可以):然后這樣做。

在此處查看示例: 過濾器正在調用提供程序管理器以查找支持身份驗證提供程序 ,如果是,則進行身份驗證

  1. RememberMeAuthenticationFilter
  2. ProviderManager

在這里,您可以找到有關如何實現自定義過濾器的好示例: 自定義過濾器@Baeldung

請考慮過濾器僅在這樣編碼時才調用提供程序管理器或提供程序。 沒有強制執行該規則的規則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM