【修复】部分方法数据链接没有正常关闭

【调整】升级lego最新版本v4.25.2
【调整】ca列表支持层级筛选
This commit is contained in:
v-me-50
2025-09-02 11:50:30 +08:00
parent de385343a8
commit efd052a297
7 changed files with 261 additions and 173 deletions

View File

@@ -139,6 +139,7 @@ func AddAccount(email, ca, Kid, HmacEncoded, CADirURL string) error {
if err != nil {
return fmt.Errorf("failed to get sqlite: %w", err)
}
defer db.Close()
now := time.Now().Format("2006-01-02 15:04:05")
if (ca == "sslcom" || ca == "google") && (Kid == "" || HmacEncoded == "") {
return fmt.Errorf("Kid and HmacEncoded are required for %s CA", ca)
@@ -166,6 +167,7 @@ func UpdateAccount(id, email, ca, Kid, HmacEncoded, CADirURL string) error {
if err != nil {
return fmt.Errorf("failed to get sqlite: %w", err)
}
defer db.Close()
account := map[string]interface{}{
"email": email,
"type": ca,
@@ -186,6 +188,7 @@ func DelAccount(id string) error {
if err != nil {
return fmt.Errorf("failed to get sqlite: %w", err)
}
defer db.Close()
_, err = db.Where("id=?", []any{id}).Delete()
if err != nil {
return fmt.Errorf("failed to delete account: %w", err)
@@ -198,6 +201,7 @@ func GetAccountList(search, ca string, p, limit int64) ([]map[string]interface{}
if err != nil {
return nil, 0, fmt.Errorf("failed to get sqlite: %w", err)
}
defer db.Close()
whereSql := "1=1"
var whereArgs []any
limits := []int64{0, 100}
@@ -247,6 +251,7 @@ func GetCaList() ([]string, int, error) {
if err != nil {
return nil, 0, fmt.Errorf("failed to get sqlite: %w", err)
}
defer db.Close()
data, err := db.Field([]string{"type"}).GroupBy("type").Select()
if err != nil {
return nil, 0, fmt.Errorf("failed to get CA list: %w", err)

View File

@@ -31,6 +31,7 @@ import (
"github.com/go-acme/lego/v4/providers/dns/namesilo"
"github.com/go-acme/lego/v4/providers/dns/ns1"
"github.com/go-acme/lego/v4/providers/dns/route53"
"github.com/go-acme/lego/v4/providers/dns/spaceship"
"github.com/go-acme/lego/v4/providers/dns/tencentcloud"
"github.com/go-acme/lego/v4/providers/dns/volcengine"
"github.com/go-acme/lego/v4/providers/dns/westcn"
@@ -151,6 +152,7 @@ func GetDNSProvider(providerName string, creds map[string]string, httpClient *ht
config := route53.NewDefaultConfig()
config.AccessKeyID = creds["access_key_id"]
config.SecretAccessKey = creds["secret_access_key"]
config.Region = creds["region"]
config.PropagationTimeout = maxWait
return route53.NewDNSProviderConfig(config)
case "azure":
@@ -208,6 +210,14 @@ func GetDNSProvider(providerName string, creds map[string]string, httpClient *ht
config := webhook.NewConfig(creds)
config.PropagationTimeout = maxWait
return webhook.NewDNSProviderConfig(config)
case "spaceship":
config := spaceship.NewDefaultConfig()
config.APIKey = creds["api_key"]
config.APISecret = creds["api_secret"]
config.PropagationTimeout = maxWait
return spaceship.NewDNSProviderConfig(config)
//case "edgeone":
//config :=
default:
return nil, fmt.Errorf("不支持的 DNS Provider: %s", providerName)