diff --git a/backend/internal/cert/apply/lego/webhook/lego.go b/backend/internal/cert/apply/lego/webhook/lego.go index 8f1bbf4..3487918 100644 --- a/backend/internal/cert/apply/lego/webhook/lego.go +++ b/backend/internal/cert/apply/lego/webhook/lego.go @@ -23,16 +23,14 @@ type DNSProvider struct { } func NewConfig(WebhookConfigStr map[string]string) *Config { - fmt.Println(WebhookConfigStr) WebhookConfig := &public.WebhookConfig{ Url: WebhookConfigStr["url"], Data: WebhookConfigStr["data"], Method: WebhookConfigStr["method"], Headers: WebhookConfigStr["headers"], - IgnoreSSL: WebhookConfigStr["ignore_ssl"] == "true", + IgnoreSSL: WebhookConfigStr["ignore_ssl"] == "1", } - fmt.Println(WebhookConfig.Url) return &Config{ WebhookConfig: WebhookConfig, diff --git a/backend/internal/cert/deploy/webhook/deploy.go b/backend/internal/cert/deploy/webhook/deploy.go index e824454..a071509 100644 --- a/backend/internal/cert/deploy/webhook/deploy.go +++ b/backend/internal/cert/deploy/webhook/deploy.go @@ -32,12 +32,35 @@ func Deploy(cfg map[string]any) error { return fmt.Errorf("api配置错误") } // 解析 JSON 配置 - var providerConfig public.WebhookConfig - err = json.Unmarshal([]byte(providerConfigStr), &providerConfig) + var providerConfigMap map[string]interface{} + + err = json.Unmarshal([]byte(providerConfigStr), &providerConfigMap) if err != nil { return err } + var ignoreSSL bool + switch v := providerConfigMap["ignore_ssl"].(type) { + case string: + if v == "1" { + ignoreSSL = true + } + case float64: + if v != 0 { + ignoreSSL = true + } + case bool: + ignoreSSL = v + } + + providerConfig := public.WebhookConfig{ + Url: providerConfigMap["url"].(string), + Data: providerConfigMap["data"].(string), + Method: providerConfigMap["method"].(string), + Headers: providerConfigMap["headers"].(string), + IgnoreSSL: ignoreSSL, + } + certStr, ok := cert["cert"].(string) if !ok || certStr == "" { return fmt.Errorf("cert is required and must be a string")