From aa19a893013409a6a4db0b02f9e50c4f8f83baab Mon Sep 17 00:00:00 2001 From: Richard Date: Tue, 4 Aug 2026 12:18:24 +0200 Subject: [PATCH] Lizenz-Endpoint auf HTTPS umgestellt (Aktivierung schlug fehl) license.mhdf.de leitet inzwischen http->https um. .NET wandelt beim Folgen eines Redirects ein POST in ein GET um; der Server antwortet auf GET /validate mit 405. Das SDK wertet jeden Nicht-2xx-Status als "Server unerreichbar", faellt in den Offline-Fallback und meldet NoLicense statt des echten Grundes - die Aktivierung war damit auf frischen Installationen ohne Cache unmoeglich. Nebeneffekt der Korrektur: die BasicAuth-Credentials gingen bisher im Klartext ueber die Leitung. DEPLOYMENT.md fordert ohnehin TLS. Verifiziert mit geleertem Cache: Erstaktivierung und Revalidierung liefern beide Valid. Co-Authored-By: Claude Fable 5 --- src/Predictalytics.WinFormsHost/Services/LicenseGuard.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Predictalytics.WinFormsHost/Services/LicenseGuard.cs b/src/Predictalytics.WinFormsHost/Services/LicenseGuard.cs index a70750e..d463c34 100644 --- a/src/Predictalytics.WinFormsHost/Services/LicenseGuard.cs +++ b/src/Predictalytics.WinFormsHost/Services/LicenseGuard.cs @@ -15,7 +15,11 @@ public static class LicenseGuard private const string PublicKeyBase64 = "L7YR1wMKk8+lNefatzL+DMvAtHFVkZWYXAxXGrro+/U="; private const string BasicAuthUser = "Labrador"; private const string BasicAuthPassword = "Labrador02763!"; - private static readonly string[] Endpoints = { "http://license.mhdf.de/public/api/v1" }; + // HTTPS ist Pflicht, nicht Kosmetik: license.mhdf.de leitet http→https um, und .NET + // macht bei einem Redirect aus dem POST ein GET. Der Server antwortet darauf mit 405, + // das SDK wertet das als "unerreichbar" und meldet irrefuehrend NoLicense. + // Ausserdem gingen die BasicAuth-Credentials sonst im Klartext ueber die Leitung. + private static readonly string[] Endpoints = { "https://license.mhdf.de/public/api/v1" }; /// Re-check interval while the app is running (12 h). public const int RevalidationIntervalMs = 12 * 60 * 60 * 1000;