loadUserByUsername
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
List<UserDetailsProjection> result = repository.searchUserAndRolesByEmail(username);
if (result.size() == 0) {
throw new UsernameNotFoundException("Email not found");
}
User user = new User();
user.setEmail(result.get(0).getUsername());
user.setPassword(result.get(0).getPassword());
for (UserDetailsProjection projection : result) {
user.addRole(new Role(projection.getRoleId(), projection.getAuthority()));
}
return user;
}
Podemos criar um existingUsername e nonExistingUsername e um User.
Como o método usa uma List, também criaremos uma! Iniciar tudo no setUp (pode criar um UserFactory btw).
Atualizado