При попытке зарегистрировать пользователей в FusionAuth, у которых уже есть пароль Bcrypted, который был изначально сгенерирован с помощью org.springframework.security.crypto.bcrypt.BCrypt
(с 10 раундами хеширования), пользователь больше не может использовать свой пароль при попытке аутентификации с помощью FusionAuth.
Хешированные пароли выглядят так:
$2a$10$3sTYd6sHbHIsTO2jBiishOTmcvFS.bJ2X2lbIDO1w2o4MNXXXXXXX
Код импорта (в Котлине) выглядит следующим образом:
val response = client.register(null, RegistrationRequest(User().apply {
username = user.username
email = user.email
firstName = user.firstname
lastName = user.lastname
active = user.isActive
encryptionScheme = "bcrypt"
password = user.password // generated with BCrypt(10)
passwordChangeRequired = false
data.putAll(mapOf(
"mainMandant" to user.mainMandant?.mandantName,
"custodianMandants" to user.custodianMandants.joinToString { it.mandantName },
"technicalUser" to user.isTechnicalUser
))
}, UserRegistration().apply {
applicationId = myAppId
roles = extractUserRoles(user).toSortedSet()
preferredLanguages.add(Locale.GERMAN)
username = user.username
}, false, true))
В системных настройках FusionAuth «Параметры криптографического хеширования» настроено для использования схемы «Соленый шифр» с фактором 10 и повторного хеширования при включенном входе в систему.
Как зарегистрировать пользователя и разрешить повторное использование существующего пароля, если это возможно?