从Authentication Processing Filter 的运作流程中,您可以进一步了解Authentication Manager与Authentication Provider的运作原理,以下是流程运作简图:
- 前一个Filter将请求、回应与Filter Chain物件传递给下一个Authentication Processing Filter。
- 从请求物件中取得使用者名称、密码等资讯,用以建立Authentication Token。
- 呼叫Authentication Manager,并将Authentication Token传递给它。
- Ahthentication Manager选出一个支援Authentication Token的Authehtication Provider。
- 将Authentication Token传递给Authentication Provider。
- 从Authentication Token中取出使用者名称,传给User Cache Service用以检查是否有对应的使用者讯息。
- User Cache Service检查是否有对应的使用者讯息。
- 传回User Cache中的使用者讯息,如果没有对应的讯息则传回null。
- 如果使用者讯息不为null,进行13,如果为null,进行10。
- 将使用者名称传给User Details Service。
- 从资料储存(档案、资料库、directory service)中取得使用者讯息。
- 将使用者讯息传回。
- 如果可以取得使用者讯息,其密码与使用者请求中的密码相符,则将使用者讯息传给Authentication Manager,否则丢出例外。
- 将使用者讯息传回给Authentication Processing Filter。
- 将使用者讯息储存在Security Context中。
- 进行下一个Filter。