Я пытаюсь обезопасить API-интерфейсы Rest, используя Spring Boot и JWT.Прямо сейчас мне удалось собрать воедино части конфигурации, чтобы получить токен, сгенерированный с жестко запрограммированным именем пользователя и паролем.Я хотел бы, чтобы вместо этого использовались мой класс пользователя и репозиторий.
Я смог жестко закодировать пользователя здесь
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user")
.password(passwordEncoder().encode("password"))
.authorities("ROLE_USER");
}
Должен ли я указать это на мой UserDetailsService?Как бы я это сделал?
@Service
public class UserSecurityService implements UserDetailsService {
private static final Logger LOG = LoggerFactory.getLogger(UserSecurityService.class);
@Autowired
private UserRepository userRepository;
@Override
public UserDetails loadUserByUsername (String username) throws UsernameNotFoundException {
User user = userRepository.findByUsername(username);
if (null == user) {
LOG.warn("username not found");
throw new UsernameNotFoundException("Username" + username + "not found");
}
return user;
}
}