Files
havline-native/app-src/internal/frp/frps_template_mask_test.go
T

44 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package frp
import (
"strings"
"testing"
)
// frps.toml 的预览(FRPSServerConfig 返回的内容)绝不能带明文密钥:
// 拉到的内容会直接渲染在浏览器的「即将下发的内容」里。
func TestMaskFRPSSecrets(t *testing.T) {
content := strings.Join([]string{
`bindPort = 7000`,
`auth.method = "token"`,
`auth.token = "s3cr3t-token"`,
`auth.oidc.clientSecret = "s3cr3t-oidc"`,
`# auth.token = "注释里的示例不应受影响"`,
`webServer.addr = "0.0.0.0"`,
}, "\n")
masked := maskFRPSSecrets(content)
if strings.Contains(masked, "s3cr3t-token") || strings.Contains(masked, "s3cr3t-oidc") {
t.Fatalf("预览里仍能看到明文密钥:\n%s", masked)
}
for _, expected := range []string{
`auth.token = "********"`,
`auth.oidc.clientSecret = "********"`,
`bindPort = 7000`,
`auth.method = "token"`,
`webServer.addr = "0.0.0.0"`,
} {
if !strings.Contains(masked, expected) {
t.Fatalf("脱敏后缺少 %q:\n%s", expected, masked)
}
}
}
// 注释行不是生效配置,不参与脱敏(保持模板原样)
func TestMaskFRPSSecretsKeepsComments(t *testing.T) {
content := `# auth.token = "说明文字"`
if got := maskFRPSSecrets(content); got != content {
t.Fatalf("注释行被改写:%q", got)
}
}