我是Security的新手,我正在尝试实现一个用于身份验证的自定义UserDetailsService。困扰我的是,这个接口只包含一个方法loadUserByUsername(String username),它只接受用户名作为参数,并返回一个UserDetails。
我想知道为什么这个方法不接受任何密码作为参数。
Spring是如何仅根据用户名对用户进行身份验证的?
我是Spring安全方面的新手,欢迎对Spring安全中的Api和身份验证过程进行任何澄清。
发布于 2014-10-10 10:45:00
UserDetailsService的任务不是对用户进行身份验证。这是AuthenticationProvider的责任。
例如,DaoAuthenticationProvider只使用UserDetailsService按用户名加载用户,然后根据该用户验证UsernamePasswordAuthenticationToken,以确定密码是否匹配。
看看DaoAuthenticationProvider的源代码,了解幕后到底是如何做到的。
https://stackoverflow.com/questions/26297490
复制相似问题