Spring安全性和UserDetailsS​​ervice

时间:2014-10-10 10:38:52

标签: java spring spring-security

我是Spring Security的新手,我正在尝试实现自定义UserDetailsService进行身份验证。困扰我的是,这个接口只包含一个方法loadUserByUsername(String username),它只接受用户名作为参数并返回UserDetails

我想知道为什么这个方法不会将任何密码作为参数。

Spring如何仅根据用户名对用户进行身份验证?

我是Spring安全的新手,欢迎任何关于Api和Spring Security中的身份验证过程的澄清。

1 个答案:

答案 0 :(得分:6)

UserDetailsService的任务不是验证用户身份。这是AuthenticationProvider的责任。

例如,DaoAuthenticationProvider只使用UserDetailsService按用户名加载用户,然后针对该用户验证UsernamePasswordAuthenticationToken以查看密码是否匹配。

查看DaoAuthenticationProvider的源代码,了解幕后如何做到这一点。