feat(system): Builder API Key 等配置前端显示完整值

- 后端 SystemConfigService 返回解密后的完整 builderApiKey/Secret/Passphrase,不再脱敏
- 移除未使用的 maskSensitiveValue 方法
- 更新 DTO 与前端类型注释为「完整显示」

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
WrBug
2026-02-16 01:47:52 +08:00
parent 08e1219f77
commit c38529546f
3 changed files with 10 additions and 23 deletions
@@ -68,9 +68,9 @@ data class SystemConfigDto(
val builderApiKeyConfigured: Boolean, // Builder API Key 是否已配置
val builderSecretConfigured: Boolean, // Builder Secret 是否已配置
val builderPassphraseConfigured: Boolean, // Builder Passphrase 是否已配置
val builderApiKeyDisplay: String? = null, // Builder API Key 显示值(部分显示,用于前端展示)
val builderSecretDisplay: String? = null, // Builder Secret 显示值(部分显示,用于前端展示)
val builderPassphraseDisplay: String? = null, // Builder Passphrase 显示值(部分显示,用于前端展示)
val builderApiKeyDisplay: String? = null, // Builder API Key 显示值(完整,用于前端展示)
val builderSecretDisplay: String? = null, // Builder Secret 显示值(完整,用于前端展示)
val builderPassphraseDisplay: String? = null, // Builder Passphrase 显示值(完整,用于前端展示)
val autoRedeemEnabled: Boolean = true // 自动赎回(系统级别配置,默认开启)
)
@@ -25,19 +25,6 @@ class SystemConfigService(
const val CONFIG_KEY_BUILDER_SECRET = "builder.secret"
const val CONFIG_KEY_BUILDER_PASSPHRASE = "builder.passphrase"
const val CONFIG_KEY_AUTO_REDEEM = "auto_redeem"
/**
* 遮蔽敏感信息,仅显示前4位和后4位
* 例如:abcd1234...wxyz5678
*/
fun maskSensitiveValue(value: String?): String? {
if (value == null) return null
return when {
value.length <= 8 -> "****" // 太短则完全遮蔽
value.length <= 16 -> "${value.take(2)}...${value.takeLast(2)}"
else -> "${value.take(4)}...${value.takeLast(4)}"
}
}
}
/**
@@ -49,10 +36,10 @@ class SystemConfigService(
val builderPassphrase = getConfigValue(CONFIG_KEY_BUILDER_PASSPHRASE)
val autoRedeem = isAutoRedeemEnabled()
// 获取遮蔽后的显示值(仅显示部分字符,用于前端确认配置
// 获取完整显示值(用于前端展示与编辑
val builderApiKeyDisplay = builderApiKey?.let {
try {
maskSensitiveValue(cryptoUtils.decrypt(it))
cryptoUtils.decrypt(it)
} catch (e: Exception) {
null
}
@@ -60,7 +47,7 @@ class SystemConfigService(
val builderSecretDisplay = builderSecret?.let {
try {
maskSensitiveValue(cryptoUtils.decrypt(it))
cryptoUtils.decrypt(it)
} catch (e: Exception) {
null
}
@@ -68,7 +55,7 @@ class SystemConfigService(
val builderPassphraseDisplay = builderPassphrase?.let {
try {
maskSensitiveValue(cryptoUtils.decrypt(it))
cryptoUtils.decrypt(it)
} catch (e: Exception) {
null
}
+3 -3
View File
@@ -932,9 +932,9 @@ export interface SystemConfig {
builderApiKeyConfigured: boolean
builderSecretConfigured: boolean
builderPassphraseConfigured: boolean
builderApiKeyDisplay?: string // Builder API Key 显示值(部分显示
builderSecretDisplay?: string // Builder Secret 显示值(部分显示
builderPassphraseDisplay?: string // Builder Passphrase 显示值(部分显示
builderApiKeyDisplay?: string // Builder API Key 显示值(完整
builderSecretDisplay?: string // Builder Secret 显示值(完整
builderPassphraseDisplay?: string // Builder Passphrase 显示值(完整
autoRedeemEnabled: boolean // 自动赎回(系统级别配置,默认开启)
}