我正在尝试在使用Spring boot 4.3开发的REST服务上添加基本身份验证安全层。
我基本上做了两件事:
实施UserDetailsService
界面以提供用户详细信息。在这里,我从文本文件中读取用户名和编码(通过Bcrypt)密码。
我在@EnableWebSecurity
带注释的安全配置类中声明了一个bean:
@Bean
public BCryptPasswordEncoder getPasswordEncoder () {
return new BCryptPasswordEncoder();
}
返回特定密码编码器。
我正在使用ARC(适用于Chrome)和Firefox的REST客户端等其他客户端测试身份验证。
问题如下:
200 OK
。这对于一群用户来说都是如此。换句话说,只要我提供正确的凭证对,我就会收到200
响应。200
获得401
,有时甚至获得正确的凭据WARN 6813 BCryptPasswordEncoder : Empty encoded password
。此时,其他用户身份验证也会受到影响。第2步出现了一个奇怪的日志:
{{1}}
为了详细说明密码的哈希,我运行了Bcrypt密码编码器实用程序并编码了一堆密码,并将它们手动保存在相应用户名的文本文件中。
我不确定问题出在哪里:客户端是否缓存凭据或Spring安全上下文缓存错误的主体或用户详细信息服务中断(尽管日志中没有此类异常)。
感谢任何帮助。如果您需要任何进一步的具体信息,请告诉我。