Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring security 在spring security中按用户名和密码加载UserDetails?_Spring Security - Fatal编程技术网

Spring security 在spring security中按用户名和密码加载UserDetails?

Spring security 在spring security中按用户名和密码加载UserDetails?,spring-security,Spring Security,我是Spring Security的新手,遇到了一个问题,希望这里的人能帮助我: DaoAuthenticationProvider仅通过用户名检索用户(当您实现UserDetailsService.loadUserByUsername(字符串用户名)时),但我的问题是,我们的密码是由DB函数在DB上散列的,这意味着如果我通过用户名检索,它将与提供的密码不匹配,因为我从DB获得的是散列版本 如何在Spring Security上实现一个解决方案,在检索用户对象并将用户标记为已验证之前,我可以在D

我是Spring Security的新手,遇到了一个问题,希望这里的人能帮助我:

DaoAuthenticationProvider仅通过用户名检索用户(当您实现UserDetailsService.loadUserByUsername(字符串用户名)时),但我的问题是,我们的密码是由DB函数在DB上散列的,这意味着如果我通过用户名检索,它将与提供的密码不匹配,因为我从DB获得的是散列版本

如何在Spring Security上实现一个解决方案,在检索用户对象并将用户标记为已验证之前,我可以在DB端匹配用户名和密码

像UserDetailsService.LoadUserByUserName和password(字符串用户名,字符串密码)之类的东西就是我要找的

我有一种感觉,我将不得不编写自己的自定义实现,因为我在某个地方读到Spring Security从未向DB发送密码。如果我这样做,有人能告诉我如何开始的正确方向吗


非常感谢您的帮助。谢谢!

您可以编写一个UserDetailsServiceImpl扩展
org.springframework.security.core.userdetails.UserDetailsService

重写
loadbyusername()
方法。从数据库读取用户。您的用户将拥有哈希密码

在登录屏幕上,将用户身份验证为
登录(用户名、哈希(密码))

他们会匹配的