У меня есть сервер аутентификации, который сохраняет учетные данные пользователя в базе данных после успешного входа в систему. Я использую BCryptPasswordEncoder для кодирования пароля перед его сохранением.
PasswordEncoder pe = new BCryptPasswordEncoder();
UserDetails user = new User(username,pe.encode(password), authentication.getAuthorities());
Все это хорошо работает и сохраняет зашифрованный пароль в базе данных.
Из другой службы мне нужно получить учетные данные пользователя и вызвать библиотеку, которая, в свою очередь, вызовет серверную часть для выполнения операции.
Именно здесь начинается проблема. Функция, которую я вызываю, использует необработанный пароль для вызова бэкэнда. Если я предоставлю хешированный пароль, который я сохранил ранее, мой вызов завершится неудачно с бэкэндом с ошибкой «неверный логин».
BCryptPasswordEncoder включает соответствует функция, которая соответствует сырой пароль и хешированный пароль. Я не смог использовать его, потому что у моей службы нет доступа к необработанному паролю.
В BCryptPasswordEncoder нет функции декодирования.
Я не управляю библиотекой и бэкэндом ине могу реально внести в них изменения.