From Gossip@caterpillar

Acegi Gossip: Authentication Processing Filter 的運作





從Authentication Processing Filter 的運作流程中,您可以進一步了解Authentication Manager與Authentication Provider的運作原理,以下是流程運作簡圖:



  1. 前一個Filter將請求、回應與Filter Chain物件傳遞給下一個Authentication Processing Filter。
  2. 從請求物件中取得使用者名稱、密碼等資訊,用以建立Authentication Token。
  3. 呼叫Authentication Manager,並將Authentication Token傳遞給它。
  4. Ahthentication Manager選出一個支援Authentication Token的Authehtication Provider。
  5. 將Authentication Token傳遞給Authentication Provider。
  6. 從Authentication Token中取出使用者名稱,傳給User Cache Service用以檢查是否有對應的使用者訊息。
  7. User Cache Service檢查是否有對應的使用者訊息。
  8. 傳回User Cache中的使用者訊息,如果沒有對應的訊息則傳回null。
  9. 如果使用者訊息不為null,進行13,如果為null,進行10。
  10. 將使用者名稱傳給User Details Service。
  11. 從資料儲存(檔案、資料庫、directory service)中取得使用者訊息。
  12. 將使用者訊息傳回。
  13. 如果可以取得使用者訊息,其密碼與使用者請求中的密碼相符,則將使用者訊息傳給Authentication Manager,否則丟出例外。
  14. 將使用者訊息傳回給Authentication Processing Filter。
  15. 將使用者訊息儲存在Security Context中。
  16. 進行下一個Filter。