Spring Security não retornando objeto UserDetails, apenas nome de usuário

Eu pensava que minha implementação de autorização havia sido concluída, mas ao tentar recuperar o objeto UserDetails, tudo o que estou recebendo é o nome de usuário.

Estou usando oauth com as seguintes informações.

Configurando o AuthenticationManager:

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}

Com isso feito, eu posso depurar no meu userDetailsService:

@Service
public class UserServiceImpl implements UserService, UserDetailsService {
@Override
    public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
        MyUser persistedUser = userRepository.findByEmail(email);

        if (persistedUser == null) {
            throw new UsernameNotFoundException(String.format("The email %s doesn't exist", email));
        }

        List<GrantedAuthority> authorities = new ArrayList<>();

        MyUser inMemoryUser = new MyUser(persistedUser.getEmail(), null, persistedUser.getEnabled(), false,
                false, false, authorities);

        return inMemoryUser;
    }
}

Isso termina bem e meu cliente recebe de volta o JWT. Mas encontrei o seguinte problema ao depurar um método de controlador posterior.

@GetMapping
public @ResponseBody Iterable<Curriculum> getMyCurriculums(@AuthenticationPrincipal MyUser injectedUser) {
    Authentication auth = SecurityContextHolder.getContext().getAuthentication();
    MyUser principle = (MyUser) auth.getPrincipal();
    return curriculumService.findByUser(principle);
}

Nesse caso, injectedUser = null, auth é uma OAuth2Authentication e o princípio é uma String - o nome de usuário. Deve ser MyUser

questionAnswers(1)

yourAnswerToTheQuestion