我想通过创建一个简单的登录屏幕在我的项目中使用Spring Boot Security,但是即使为BCryptPassworrdEncoder定义了bean,也遇到了这些错误。完整的错误是
com.mahmut.demoemployee.application.dao.Imp.UserDaoImp中的字段bCryptPasswordEncoder需要找不到类型为'org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder'的bean。
这是我的代码。
package com.mahmut.demoemployee.application.dao.Imp;
//Some imports
@Component
public class UserDaoImp implements UserDao {
@Autowired
UserRepository userRepository;
@Qualifier("roleRepository")
@Autowired
RoleRepository roleRepository;
@Autowired
private BCryptPasswordEncoder bCryptPasswordEncoder;
@Override
public User save(User user) {
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
user.setActive(1);
Role userRole = roleRepository.findByRole("ADMIN");
user.setRoles(new HashSet<Role>(Arrays.asList(userRole)));
return userRepository.save(user);
}
@Override
public User findUserByEmail(String email) {
return userRepository.findByEmail(email);
}
@Override
public List<User> findAll() {
return (List<User>) userRepository.findAll();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的配置类。
package com.mahmut.demoemployee.application.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@Configuration
public class WebMvcConfig extends WebSecurityConfigurerAdapter …
Run Code Online (Sandbox Code Playgroud)