Estou recebendo este erro quando tento logar na aplicacao:
Cannot invoke “org.springframework.security.core.userdetails.UserDetails.getAuthorities()” because “user” is null
Você tem uma variável user
que não foi inicializada
No spring security vc precisa criar uma classe que implemente UserDetailsService, além de de implementar o método loadUserByUsername(String username), que deverá retornar um UserDetails.
A ideia é que através do username recebido como parâmetro vc busque o usuário no seu banco de dados e crie um org.springframework.security.core.userdetails.User, configurando o username e password.
Mais ou menos isso:
@Service
public class UsuarioService implements UserDetailsService {
@Autowired
private UsuarioRepository userRepository;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Usuario user = userRepository.findByUsername(username)
.orElseThrow(() -> new UsernameNotFoundException("User not found with username: " + username));
return new org.springframework.security.core.userdetails.User(
user.getUsername(),
user.getPassword(),
new ArrayList<>()
);
}
}