私は Grails から始めて、ここにある InfoQ 電子ブックに従っています。
この本では、第 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
(a )はどこからともなくそれをどのString
ように使用できますか?
私は確かにここに何かが欠けています!