mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-05-12 02:49:42 +08:00
* feat(mongodb-driver,connection-tree): 支持 MongoDB v1/v2 切换并新增复制连接 * fix(mongodb-query): 修复 MongoDB 筛选不生效并兼容 shell 语法执行 refs #153 * fix(query-editor): 修复 SQLServer 自动补全回车重复 dbo 前缀 refs #159 * fix(sqlserver-table-designer): 修复设计表读取列时错误使用 schema 作为数据库名 refs #156 * feat(shortcuts): 增加快捷键设置并支持 SQL 执行/侧边栏搜索 refs #158 * fix(sidebar-search): 优化范围搜索匹配与交互 refs #158 * fix(filter,connection-recovery): 保持筛选状态并修复连接失效卡死 refs #165 同步修复连接失效后侧栏持续转圈、断开后无法恢复的问题 * feat(table-designer): 统一设计表界面风格并优化字段新增交互 - 统一设计表页面与数据面板的视觉风格,覆盖工具栏、Tabs、表格与编辑区域 - 移除默认硬边框,改为透明背景与细分隔线,提升整体观感一致性 - 添加字段后自动滚动到新行并高亮,且自动聚焦输入框 - 新增" 在选中字段后添加\,支持按选中字段位置插入字段 * feat(data-grid-filter): 筛选字段支持快捷搜索 - 在筛选条件字段下拉启用可搜索(showSearch) - 支持字段名大小写不敏感模糊匹配 - 表字段较多时可快速定位目标字段,减少下拉查找耗时 refs #171 * fix(db-ssl): 支持多数据源 SSL/TLS 连接并补齐达梦证书配置 refs #167 * fix(sidebar): 修复数据库加载时 null.map 导致表加载失败 * fix(query-editor): 合并运行按钮并保留 SQL 停止执行入口
56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
package redis
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"strings"
|
|
|
|
"GoNavi-Wails/internal/connection"
|
|
)
|
|
|
|
func normalizeRedisSSLMode(raw string) string {
|
|
mode := strings.ToLower(strings.TrimSpace(raw))
|
|
switch mode {
|
|
case "", "preferred", "prefer":
|
|
return "preferred"
|
|
case "required", "require", "on", "true", "mandatory", "strict":
|
|
return "required"
|
|
case "skip-verify", "insecure", "skipverify", "skip_verify", "insecure-skip-verify":
|
|
return "skip-verify"
|
|
case "disable", "disabled", "off", "false", "none":
|
|
return "disable"
|
|
default:
|
|
return "preferred"
|
|
}
|
|
}
|
|
|
|
func redisSSLMode(config connection.ConnectionConfig) string {
|
|
if !config.UseSSL {
|
|
return "disable"
|
|
}
|
|
return normalizeRedisSSLMode(config.SSLMode)
|
|
}
|
|
|
|
func shouldTryRedisSSLPreferredFallback(config connection.ConnectionConfig) bool {
|
|
return config.UseSSL && normalizeRedisSSLMode(config.SSLMode) == "preferred"
|
|
}
|
|
|
|
func withRedisSSLDisabled(config connection.ConnectionConfig) connection.ConnectionConfig {
|
|
next := config
|
|
next.UseSSL = false
|
|
next.SSLMode = "disable"
|
|
return next
|
|
}
|
|
|
|
func resolveRedisTLSConfig(config connection.ConnectionConfig) *tls.Config {
|
|
switch redisSSLMode(config) {
|
|
case "disable":
|
|
return nil
|
|
case "required":
|
|
return &tls.Config{MinVersion: tls.VersionTLS12}
|
|
case "skip-verify":
|
|
return &tls.Config{MinVersion: tls.VersionTLS12, InsecureSkipVerify: true}
|
|
default:
|
|
return &tls.Config{MinVersion: tls.VersionTLS12, InsecureSkipVerify: true}
|
|
}
|
|
}
|