【发布时间】:2019-11-24 22:10:20
【问题描述】:
我的密码编码器有问题,
我的代码:
@Service
public class UserService {
private static final String DEFAULT_ROLE = "ROLE_USER";
private UserRepository userRepository;
private UserRoleRepository roleRepository;
public PasswordEncoder passwordEncoder;
@Autowired
public UserService(PasswordEncoder passwordEncoder){
this.passwordEncoder = passwordEncoder;
}
@Autowired
public void setUserRepository(UserRepository userRepository){
this.userRepository = userRepository;
}
@Autowired
public void setUserRoleRepository(UserRoleRepository roleRepository){
this.roleRepository = roleRepository;
}
public void addWithDefaultRole(User user){
UserRole defaultRole = roleRepository.findByRole(DEFAULT_ROLE);
user.getRoles().add(defaultRole);
String passwordHash = passwordEncoder.encode(user.getPassword());
user.setPassword(passwordHash);
userRepository.save(user);
}
}
错误:
应用程序启动失败
说明:
org.spring.service.UserService 中构造函数的参数 0 需要一个找不到的 'org.springframework.security.crypto.password.PasswordEncoder' 类型的 bean。
行动:
考虑在你的配置中定义一个 'org.springframework.security.crypto.password.PasswordEncoder' 类型的 bean。
进程以退出代码 1 结束
我不知道如何解决它。
【问题讨论】:
标签: java spring spring-security