- internal/utils:ClientIP 按序枚举 CDN/代理头(含 RFC 7239 Forwarded),仅在可信代理来源时采信,否则回退直连 IP;RemoteIP 取直连地址;RandomString 生成安全随机串 - 新增 server.trusted_proxies 配置(IP/CIDR,ConfigVersion 2→3 自动补全),启动时同步应用到 gin 与 utils - 初始管理员密码生成改用 utils.RandomString,原密码测试迁至 utils
30 lines
566 B
Go
30 lines
566 B
Go
package utils
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestRandomString(t *testing.T) {
|
|
value, err := RandomString(16)
|
|
if err != nil {
|
|
t.Fatalf("生成随机字符串失败: %v", err)
|
|
}
|
|
if len(value) != 16 {
|
|
t.Errorf("长度 = %d, 期望 16", len(value))
|
|
}
|
|
for _, r := range value {
|
|
if !strings.ContainsRune(randomCharset, r) {
|
|
t.Errorf("包含非法字符 %q", r)
|
|
}
|
|
}
|
|
|
|
other, err := RandomString(16)
|
|
if err != nil {
|
|
t.Fatalf("生成随机字符串失败: %v", err)
|
|
}
|
|
if value == other {
|
|
t.Error("两次生成的字符串不应相同")
|
|
}
|
|
}
|