added last fixes for dev branch prepartion
This commit is contained in:
57
backend/acme_client_context.go
Normal file
57
backend/acme_client_context.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"certigo-addon-backend/providers"
|
||||
)
|
||||
|
||||
// ACMEClientContext enthält den Kontext für ACME-Operationen
|
||||
type ACMEClientContext struct {
|
||||
Provider providers.ACMEProvider
|
||||
Directory *ACMEDirectory
|
||||
DirectoryURL string
|
||||
NewAccountURL string
|
||||
NewOrderURL string
|
||||
NewNonceURL string
|
||||
}
|
||||
|
||||
// NewACMEClientContext erstellt einen neuen ACME-Client-Kontext
|
||||
func NewACMEClientContext(providerID string) (*ACMEClientContext, error) {
|
||||
acmeManager := providers.GetACMEManager()
|
||||
provider, exists := acmeManager.GetACMEProvider(providerID)
|
||||
if !exists {
|
||||
return nil, fmt.Errorf("ACME-Provider '%s' nicht gefunden", providerID)
|
||||
}
|
||||
|
||||
config, err := acmeManager.GetACMEProviderConfig(providerID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("fehler beim Laden der Provider-Konfiguration: %v", err)
|
||||
}
|
||||
|
||||
if !config.Enabled {
|
||||
return nil, fmt.Errorf("ACME-Provider '%s' ist nicht aktiviert", providerID)
|
||||
}
|
||||
|
||||
// Validiere Konfiguration
|
||||
if err := provider.ValidateConfig(config.Settings); err != nil {
|
||||
return nil, fmt.Errorf("ungültige Provider-Konfiguration: %v", err)
|
||||
}
|
||||
|
||||
directoryURL := provider.GetDirectoryURL()
|
||||
|
||||
// Hole Directory-Endpunkte
|
||||
directory, err := getACMEDirectory(directoryURL)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("fehler beim Abrufen der ACME Directory: %v", err)
|
||||
}
|
||||
|
||||
return &ACMEClientContext{
|
||||
Provider: provider,
|
||||
Directory: directory,
|
||||
DirectoryURL: directoryURL,
|
||||
NewAccountURL: directory.NewAccount,
|
||||
NewOrderURL: directory.NewOrder,
|
||||
NewNonceURL: directory.NewNonce,
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user