先来一张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