-
Notifications
You must be signed in to change notification settings - Fork 700
关于用户认证
Jeff Zhu edited this page May 23, 2018
·
6 revisions
Saturn Console支持用户登录认证,而用户注册不在Scope里面,这意味着用户注册需要用户自行实现。
Saturn当前支持2类认证手段:明文(plaintext)和JDK的SecretKeyFactory所支持的算法。关于SecretKeyFactory的算法列表,可以参考里面的描述,对于JDK8,可以看这里。
可以通过设置property “authentication.hash”改变算法,默认是plaintext(明文)。如果指定了一个算法既不是plaintext又不是SecretKeyFactory认得的算法,会选用PBKDF2WithHmacSHA1。
注意,明文仅作测试用途,不建议上生产。
在定制用户注册功能时,请务必保证用户信息持久化到数据库的user表里面。其中,password字段用于保存密码。
密码存储格式需要结合认证的方式。如果是明文认证,则password存放的是明文。如果是使用JDK的支持的算法,则格式为:
$
code1: 密码encode后的值 code2: 盐encode后的值
实现用户注册时,可以使用PasswordUtils.genPassword(password, salt, algorithm)方法生成密码,并持久化到数据库。其中,password是明文密码,salt是盐(自行生成),algorithm即上面提到的算法。