0
我在我的User
類(從ProtoUser
繼承)寫一個函數來引導管理員用戶對我的斯卡拉電梯應用:setPasswordFromListString()不保存密碼
def generateAdminUser():Boolean = {
if (User.findAll(By(User.admin, true)).length == 0) {
val pw = Props.get("firstadmin.password") openOr "hilariouslybadpassword"
val admin = User.create
.lastName(Props.get("firstadmin.lastName") openOr "Lady")
.firstName(Props.get("firstadmin.firstName") openOr "DeFalt")
.email(Props.get("firstadmin.email") openOr "[email protected]")
.validated(true)
.setPasswordFromListString(pw::Nil)
.admin(true)
.saveMe
} else {
false
}
}
似乎一切都被保存,除了爲密碼。當我看到在數據庫:
id lastname firstname email locale timezone password_pw password_slt biography validated uniqueid superuser admin_c
1 Lady DeFalt [email protected] en_US US/Pacific * AE3MQZIX2KUB2ZMR 1 V25VPDIV43BW4HAATP1XMMV152PEWX3L 0 1
的*
顯然是錯誤的(通過正常的代碼路徑簽約證明了這一點:它應該是用PW鹽漬哈希),但我沒有得到任何東西我的console.devmode.log
,也沒有在我的控制檯上。我試圖以編程方式添加用戶,但我不知道爲什麼這會失敗?對於Scala來說相當新穎,我不確定最好的診斷方法:我儘可能多地遵循代碼路徑,但是在ProtoUser/MegaProtoUser /等迷宮中有點遺失。
工作正常!密碼在prop文件中設置,但openOr應該已經處理它,如果沒有。它看起來好像更深入的驗證,因此需要兩個pws。謝謝! –
很高興幫助。我詢問在properties文件中設置的密碼的原因主要是爲了查看它是否可能少於5個字符,因爲'hilariouslybadpassword'確實更長。 – jcern