先來一張UserDetailsService的類圖:ide
圖1 UserDetailsService的類圖flex
圖2 UserDetailsManager的類圖blog
圖3 UserDetailsService hierarchyit
UserDetailsService的loadUserByUsername方法,經過username來獲取user信息。io
另外一個重要的類是AuthenticationUserDetailsService,它的類圖以下圖4所示,AuthenticationUserDetailsService與UserDetailsService最大的區別,本來講的很好,"it allows you to retrieve a UserDetails using an Authentication object instead of a user name String,
making it more flexible to implement"object
圖4 AuthenticationUserDetailsService的類圖方法
好比OpenIDAuthenticationProvider和CasAuthenticationProvider使用的就是AuthenticationUserDetailsService來得到user信息。DaoAuthenticationProvider使用的是UserDetailsService。im