当尝试向已经拥有 Bcrypted 密码的 FusionAuth 注册用户时,该密码最初是使用org.springframework.security.crypto.bcrypt.BCrypt
(10 轮散列)生成的,当尝试使用 FusionAuth 进行身份验证时,用户将无法使用她的密码。
散列密码如下所示:
$2a$10$3sTYd6sHbHIsTO2jBiishOTmcvFS.bJ2X2lbIDO1w2o4MNXXXXXXX
导入代码(在 Kotlin 中)如下所示:
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 的方案“Salted Bcrypt”并启用登录时重新散列。
如果可能,如何注册用户并允许重新使用现有密码?