Basic Auth klappt nicht mit HttpUtils_NonblockingGet

Begonnen von TomLee, 20 Januar 2026, 17:51:54

Vorheriges Thema - Nächstes Thema

TomLee

Hi,

ich versuche gerade, Daten von einer Symfony-basierten Webanwendung mittels HttpUtils_NonblockingGet abzugreifen. Der Endpunkt liefert JSON, ist aber durch ein Login geschützt.

Mein Problem: Meine Versuche mit Basic Auth schlagen fehl. Der Server ignoriert alle meine Versuche und antwortet mit dem HTML der Login-Seite.

Im Netzwerk-Traffic des Browser sieht man das die Anwendung Session-Cookies nutzt. In meinem Browser-Header sehe ich:

PHPSESSID: Die aktuelle Session-ID.

REMEMBERME: Ein Langzeit-Token.

Wenn ich diese Cookies in dem Header von HttpUtils angebe, klappt der Abruf sofort:

sub TransformUtilization {
#my $auth = encode_base64("bla" . ":" . "blub!");
    #$auth =~ s/\n//g; # Wichtig: Zeilenumbruch von Base64 entfernen
#my $all_cookies = 'PHPSESSID=52d80051a89397f7112345688; REMEMBERME=App.Entity.User%3AVGhvbWFz%3A1800456286%3AExVh128837646673Wok9Jc~n3D40wRCvILZkLzVJjL_3VpOvbjKX6yO4B9J0JeVQvs~;';
HttpUtils_NonblockingGet({
    #url => "https://fhempi/statistics/turnover/monthly?yearStart=2026&yearEnd=2026&invoice-status%5B%5D=1&invoice-status%5B%5D=3&invoice-status%5B%5D=2",
url => "https://bli:bla%21%40fhempi/statistics/turnover/monthly?yearStart=2026&yearEnd=2026&invoice-status%5B%5D=1&invoice-status%5B%5D=3&invoice-status%5B%5D=2",
url => "https://bli:bla!\@fhempi/statistics/turnover/monthly?yearStart=2026&yearEnd=2026&invoice-status%5B%5D=1&invoice-status%5B%5D=3&invoice-status%5B%5D=2",
#header => "Cookie: $all_cookies",
#header => "Authorization: Basic $auth",
#noshutdown => 1,
    #sslargs => { SSL_verify_mode => 0, SSL_verifycn_name => 'none' },
    #timeout => 10,
callback => sub {
    return if $_[1];
Debug $_[2];
}
  });
}

ja, hinten ist ein Befehlszeichen im Passwort.

Habe ich bei der Umsetzung von Basic Auth in HttpUtils eventuell etwas Grundsätzliches übersehen, oder ist es bei Symfony-Backends evtl. normal dass Basic Auth nicht "out-of-the-box" funktioniert? Ich hab keine Ahnung...

Mit was muss ich mich beschäftigen das ich eine vernünftige Lösung bekomme?

Gruß Thomas

passibe

Ich habe jetzt keine Lösung parat, aber ich glaube, dass das hier einfach kein Basic Auth ist.

Basic Auth funktioniert allein über den Authorization-Header, also mit Authorization: Basic base64encode(user:pass) (Pseudocode). Wenn das nicht funktioniert bzw. es irgendwelche Cookies oder auf andere Weise übermittelte Token braucht, handelt es sich nicht um Basic Auth.

TomLee

Meinst Du, einfach den Maintainer des Projekt fragen, würde die Frage schneller beantworten wie hier weiter rätseln?

Ich hab jetzt mit den gezeigten Beispielen nix falsch gemacht und es sollte grundsätzlich eigentlich so klappen?

passibe

Zitat von: TomLee am 20 Januar 2026, 20:40:27Ich hab jetzt mit den gezeigten Beispielen nix falsch gemacht und es sollte grundsätzlich eigentlich so klappen?
Nur, wenn die Anwendung, bei der du dich authentifizieren willst, auch tatsächlich Basic Auth nutzt, wonach es aktuell aber eher nicht aussieht.

Kannst es ja auch mal testen: https://testpages.eviltester.com/pages/auth/basic-auth/