Problema: BCryptPasswordEncoder Spring Boot

di il
3 risposte

Problema: BCryptPasswordEncoder Spring Boot

Ciao a tutti,

Volevo sapere come mai mi dà questo problema?

import java.util.HashSet;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;

import it.nexid.model.User;
import it.nexid.repository.RoleRepository;
import it.nexid.repository.UserRepository;

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserRepository userRepository;
    @Autowired
    private RoleRepository roleRepository;
   
    @Autowired
    private BCryptPasswordEncoder bCryptPasswordEncoder;

    
    @Override
    public void save(User user) {
        user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
        user.setRoles(new HashSet<>(roleRepository.findAll()));
        userRepository.save(user);
    }

    @Override
    public User findByUsername(String username) {
        return userRepository.findByUsername(username);
    }
}



Avviando Output:

APPLICATION FAILED TO START
***************************

Description:

Field bCryptPasswordEncoder in it.nexid.service.UserServiceImpl required a bean of type 'org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder' that could not be found.

The injection point has the following annotations:
	- @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type 'org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder' in your configuration.

Che cosa devo aggiustare?

3 Risposte

  • Re: Problema: BCryptPasswordEncoder Spring Boot

    imparareJava ha scritto:


    Volevo sapere come mai mi dà questo problema?
    Che cosa devo aggiustare?
    Non hai affrontato nella configurazione di Spring Boot la CREAZIONE di un oggetto BCryptPasswordEncoder (tale da poter poi essere "iniettato" altrove) con le sue dovute proprietà da settare (che ora a memoria non ricordo).

    Come hai configurato Spring Boot? Immagino con la Java Config (classe/i con @Configuration )
  • Re: Problema: BCryptPasswordEncoder Spring Boot

    No.
    Il progetto l'ho creato con spring starter project , spring boot è tutto configurato automaticamente quando creo il progetto.
  • Re: Problema: BCryptPasswordEncoder Spring Boot

    imparareJava ha scritto:


    Il progetto l'ho creato con spring starter project , spring boot è tutto configurato automaticamente quando creo il progetto.
    Sì ma devi verificare tu se è tutto ok e inserire le definizioni dei bean che eventualmente servono in più.
    In sostanza: DEVI "sapere" come funziona (anche a grandi linee) Spring Boot, come si configura ecc...
    Dovresti sicuramente avere almeno una classe annotata @Configuration
Devi accedere o registrarti per scrivere nel forum
3 risposte