因此,我遵循了一些关于用户名和密码的Spring安全指南,但大多数指南显示使用“InMemoryUserDetailsManager”,他们说不应在生产中使用:
@Bean
public InMemoryUserDetailsManager userDetailsManager(){
UserDetails admin = User.withDefaultPasswordEncoder()
.username("ADMIN")
.password("123")
.roles("ADMIN").build();
return new InMemoryUserDetailsManager(admin);
}
我的问题是,应该如何设置这个的生产级版本?它只是不使用默认的密码编码器,因为它被弃用了,还是我应该使用一种完全不同的方法来添加和存储用户?
3条答案
按热度按时间l2osamch1#
您应该实现jdbc身份验证
DaoAuthenticationProvider
。 checkout https://www.baeldung.com/spring-security-jdbc-authentication。您的用户详细信息必须存储在永久存储中,而不是临时存储中。此外,密码必须加密,以避免危及安全性。因此,使用永久存储,您可以获取备份或数据,并从中运行查询。
n53p2ov02#
您可以实现自定义用户详细信息服务,而不使用默认服务。
您可以将用户详细信息保存到存储库中。
最后,使用密码编码器将用户详细信息添加到身份验证管理器中。
更多详情请查看我的github repository
qxsslcnc3#
Hello Please Code编码如下
希望对你有帮助