# 数据库认证
SQL认证是指客户端连接时,通过数据库进行认证,这种方式适用于客户端数量较多的场景,例如生产环境。

# 驱动选择
| 驱动方式 | 释义 | 
|---|---|
| com.mysql.cj.jdbc.Driver | mysql | 
| oracle.jdbc.OracleDriver | oracle | 
| com.microsoft.sqlserver.jdbc.SQLServerDriver | sqlserver | 
| org.postgresql.Driver | postgresql | 
# sql查询语句
使用 ${认证实体变量名}去引用认证实体中的属性,例如:${username} 代表认证实体中的username属性。查询必须返回
password字段、salt字段可选。如果没有返回password字段,则认证失败
select password,salt from device where username = '${username}' limit 1
查询支需要返回一条即可完成认证。
# 加密
# 加密算法
加密后的
password不区分大小写
| 加密方式 | 释义 | 
|---|---|
| plain | 明文 | 
| md5 | md5加密 | 
| sha1 | sha1加密 | 
| sha256 | sha256加密 | 
| sha512 | sha512加密 | 
# 盐
目前支持三种加盐策略
| 加盐策略 | 释义 | 
|---|---|
| disable | 不加盐 | 
| prefix | salt+password | 
| suffix | password +salt | 
# 认证规则
现在新增认证管理器支持正则匹配clientId,定向路由认证管理器,可以操作clientId、username,具体语法如下:
- 客户端ID匹配正则 
Client{regex} - 用户名匹配正则  
User{regex} 
如果不配置正则表达式,表示匹配所有,所有请求都将会走该认证管理器。