BCryptPasswordEncoder 未作为 spring-boot-starter-security 的一部分导入

Posted

技术标签:

【中文标题】BCryptPasswordEncoder 未作为 spring-boot-starter-security 的一部分导入【英文标题】:BCryptPasswordEncoder not imported as part of spring-boot-starter-security 【发布时间】:2018-09-09 22:52:36 【问题描述】:

找不到 bean BCryptPasswordEncoder 虽然我通过 maven 依赖项和 spring-boot-starter-security 导入它

我尝试使用 BCryptPasswordEncoder 进行密码散列,但是当我启动项目时出现错误:

构造函数的参数0 com.websystique.springboot.controller.RestApiController 需要一个 豆类 'org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder' 找不到。

我正在使用 spring-boot,我只是在我的控制器中使用它,例如:

@Autowired BCryptPasswordEncoder bCryptPasswordEncoder;

【问题讨论】:

【参考方案1】:

@Configuration 类中添加 BcryptPasswordEncoder bean。它不会自动声明。

@Bean
public PasswordEncoder passwordEncoder() 
    return new BCryptPasswordEncoder();

(可选)像这样注入。

@Autowired
private PasswordEncoder passwordEncoder;

【讨论】:

以上是关于BCryptPasswordEncoder 未作为 spring-boot-starter-security 的一部分导入的主要内容,如果未能解决你的问题,请参考以下文章

BCryptPasswordEncoder 加密算法解析

BCryptPasswordEncoder加密及判断密码是否相同

BCryptPasswordEncoder的使用及原理

BCryptPasswordEncoder加密

BCryptPasswordEncoder加密

为啥来自 Spring 的 BCryptPasswordEncoder 为相同的输入生成不同的输出?