Java Spring安全性,密码编码器问题
我的密码编码器有问题 我的代码:Java Spring安全性,密码编码器问题,java,spring,spring-security,Java,Spring,Spring Security,我的密码编码器有问题 我的代码: @服务 公共类用户服务{ 私有静态最终字符串DEFAULT\u ROLE=“ROLE\u USER”; 私有用户存储库用户存储库; 私人用户角色扮演者角色扮演者角色扮演者; 公共密码编码器; @自动连线 公共用户服务(PasswordEncoder PasswordEncoder){ this.passwordEncoder=passwordEncoder; } @自动连线 public void setUserRepository(UserRepository
@服务
公共类用户服务{
私有静态最终字符串DEFAULT\u ROLE=“ROLE\u USER”;
私有用户存储库用户存储库;
私人用户角色扮演者角色扮演者角色扮演者;
公共密码编码器;
@自动连线
公共用户服务(PasswordEncoder PasswordEncoder){
this.passwordEncoder=passwordEncoder;
}
@自动连线
public void setUserRepository(UserRepository UserRepository){
this.userRepository=userRepository;
}
@自动连线
public void setUserRoleRepository(UserRoleRepository roleRepository){
this.roleRepository=roleRepository;
}
public void addWithDefaultRole(用户){
UserRole defaultRole=roleRepository.findByRole(默认角色);
user.getRoles().add(defaultRole);
字符串passwordHash=passwordEncoder.encode(user.getPassword());
user.setPassword(passwordHash);
userRepository.save(用户);
}
}
错误:
应用程序无法启动
说明: org.spring.service.UserService中构造函数的参数0需要找不到类型为“org.springframework.security.crypto.password.PasswordEncoder”的bean 行动: 考虑在配置中定义“org.springframework.security.crypto.password.PasswordEncoder”类型的bean 进程已完成,退出代码为1
我不知道如何修复它。要使依赖项注入工作,您需要准确地声明一个适当类型的bean,否则就没有需要注入的内容。正是这告诉了你例外
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder(); // or any other password encoder
}
要使依赖项注入工作,您需要准确地声明一个适当类型的bean,否则就没有需要注入的内容。正是这告诉了你例外
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder(); // or any other password encoder
}
尝试这种方式(两个bean中的一个,而不是两个):
尝试这种方式(两个bean中的一个,而不是两个):
我将您的代码添加到UserService,但我有另一个问题描述:应用程序上下文中某些bean的依赖关系形成了一个循环:┌─────┐ | 在文件[C:\Users\…\userService.class]中定义的userService└─────┘ 进程结束,退出代码1将bean输出到一个单独的
@组件。现在,您想在用户服务
中插入一个密码编码器
,但这显然是声明它的组件。我将您的代码添加到用户服务,但我有另一个问题描述:应用程序上下文中某些bean的依赖关系形成一个循环:┌─────┐ | 在文件[C:\Users\…\userService.class]中定义的userService└─────┘ 进程结束,退出代码1将bean输出到一个单独的@组件。现在,您希望在UserService
中插入一个PasswordEncoder
,但声明它的组件就是这个组件。