Skip to content

关于用户认证

Jeff Zhu edited this page May 30, 2018 · 6 revisions

简介

Saturn3.0.0开始,Console支持用户登录认证。但用户注册功能不在Scope里面,这意味着用户注册需要用户自行实现。

支持的认证方式

Saturn当前支持2类认证手段:明文(plaintext)和JDK的SecretKeyFactory所支持的算法。关于SecretKeyFactory的算法列表,可以参考里面的描述,对于JDK8,可以看这里

可以通过设置JVM property “-Dauthentication.hash”改变算法,默认是plaintext(明文)。如果指定了一个算法既不是plaintext又不是SecretKeyFactory认得的算法,会选用PBKDF2WithHmacSHA1。

注意,明文仅作测试用途,不建议上生产。

用户密码与格式

在定制用户注册功能时,请务必保证用户信息持久化到数据库的user表里面。其中,password字段用于保存密码。

密码存储格式需要结合认证的方式。如果是明文认证,则password存放的是明文。如果是使用JDK的支持的算法,则格式为:

<code1>$<code2>

  • code1: 密码encode后的值
  • code2: 盐encode后的值

用户注册功能实现

实现用户注册时,可以使用PasswordUtils.genPassword(password, salt, algorithm)方法生成密码,并持久化到数据库。其中,password是明文密码,salt是盐(自行生成),algorithm即上面提到的算法。