当前位置: 首页 > 知识库问答 >
问题:

Spring Security性,密码编码器问题

郎祯
2023-03-14

我的密码编码器有问题,

我的代码:

@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”类型的bean。springframework。安全加密。暗语配置中的PasswordEncoder。

进程结束,退出代码1

我不知道如何修理它。

共有2个答案

海新霁
2023-03-14

为了使依赖注入工作,您需要准确地声明一个适当类型的bean,否则就没有需要注入的内容。正是这告诉了你一个例外。

@Bean
public PasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder(); // or any other password encoder
}
宿丰
2023-03-14

尝试这种方式(两个豆子中的一个,不是两个):

    @Configuration
    @EnableWebSecurity
    public class WebSecurityConfigAuthentication extends WebSecurityConfigurerAdapter {

        //   For BCrypt Encoded password

        @Bean
        public PasswordEncoder passwordEncoder() {
           PasswordEncoder encoder = new BCryptPasswordEncoder();
           return encoder;
        }


         OR


        //   For no Encoder, plain text password

        @Bean
        public static NoOpPasswordEncoder passwordEncoder() {
           return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
        }



    }
 类似资料:
  • 我正在尝试在linux上构建ffmpeg编码器。我从一个定制的服务器Dual 1366 2.6 Ghz Xeon CPU(6核)开始,具有16 GB RAM和Ubuntu 16.04最小安装。使用h264和aac构建ffmpeg。我正在获取实时源OTA频道并使用以下参数对它们进行编码/流式传输 -vcodec libx264-预设超高速-crf 25-x264opts keyint=60:min

  • 我正在尝试捕获和编码音频数据,我正在使用FFMPEG AAC编码音频,为了捕获PCM数据,我使用ALSA,捕获部分在我的情况下工作,但是AAC编码器不工作。 我试图播放test.aac文件使用 ffplaytest.aac 但它包含很多噪音。 附加aac编码器代码: 这里,请忽略DUMP_TEST标志,我已经启用了。 有人能告诉我什么是问题吗? 谢谢,哈希尔

  • 我正在使用spring boot,spring安全,OAuth2和JWT来验证我的应用程序,但我一直得到这个令人讨厌的错误,我不知道什么是错误的。我的类: : : 除: 我的实体模型类是: 实体: 实体: 我在数据库中的密码是正确加密的spring安全BCrypt,它的数据类型是varchar(255),大于60。

  • 我对Spring Oauth和Spring Security很陌生。我正在尝试在项目中使用client\u凭据流。目前,我设法使用自己的CustomDetailsService,以便从系统中已经存在的数据库中获取client\u id和密码(secret)。唯一的问题是,我无法更改AuthorizationServer使用的DaoAuthenticationProvider中的密码编码器-它默认设

  • 我们已经在前两节中表征并变换了不定长的输入序列。但在自然语言处理的很多应用中,输入和输出都可以是不定长序列。以机器翻译为例,输入可以是一段不定长的英语文本序列,输出可以是一段不定长的法语文本序列,例如 英语输入:“They”、“are”、“watching”、“.” 法语输出:“Ils”、“regardent”、“.” 当输入和输出都是不定长序列时,我们可以使用编码器—解码器(encoder-de

  • 我刚刚开始一个编码训练营,对于我们的第三个作业,我们必须编写一个带有一些用户偏好的随机密码生成器。我写了我的代码,除了一位之外,一切都可以工作。当用户只选择数值时,会出现错误,我的字符选择池告诉我“pSelection.charAt不是GeneratePWD的函数”。 考虑到该函数在其他任何情况下都能完美工作,这对我来说毫无意义。我尝试为失败的特定(else-if)语句创建一个单独的数组。我尝试过