2019独角兽企业重金招聘Python工程师标准>>>
注意:AuthenticationProvider与Authentication紧密联系,关于Authentication,看我的这篇博客。
先上一张图,如下图1
图1 AuthenticationProvider的类图
AuthenticationProvider是个接口,通过实现这个接口,实现拓展,此图来自于《Pro Spring Security》的Chapter3:
图2 AuthenticationProvider的继承图
来看个例子,DaoAuthenticationProvider,它的类图如下图3,使用了Template pattern,在AbstractUserDetilsAuthenticationProvider中定义执行逻辑,而在DaoAuthenticationProvider中有具体实现。Template pattern可以在一定程度上理解为父类调用子类。
图3 DaoAuthenticationProvider的类图
参考:
1. Carlo Scarioni, Pro Spring Security.