來到我開始接觸Grails和我正在關注的電子書相關的發現here。哪裏encodeAsSHA()函數
書關於認證的第9章以及如何加密密碼任教。下面顯示了它是如何完成的,但我不明白它是如何工作的。
首先,我們需要在grails-app/utils/SHACodec.groovy
創建一個類:
import java.security.MessageDigest
class SHACodec{
static encode = { target->
MessageDigest md = MessageDigest.getInstance('SHA')
md.update(target.getBytes('UTF-8'))
return new String(md.digest()).encodeAsBase64()
}
}
然後在我的User domain
,我需要一個封閉添加到beforeInsert
:
class User{
...
String password
def beforeInsert = {
password = password.encodeAsSHA()
password
}
...
}
的代碼工作很好,但我沒有看到關於如何在grails-app/utils/SHACodec.groovy
中添加一個類的連接使得使用函數encodeAsSHA()
爲password
在User domain
。
由於SHACodec
類只分配閉包到encode
,並從未提及encodeAsSHA()
。 password
(一個String
)如何能夠在任何地方使用它?
我肯定失去了一些東西在這裏!