No basic authentication active but credentials received

Begonnen von Wernieman, 10 November 2022, 17:37:25

Vorheriges Thema - Nächstes Thema

Wernieman

Ich wollte eigentlich zu folgendem was schreiben: https://forum.fhem.de/index.php/topic,130152.msg1244121.html#msg1244121
Aber der Thread wurde geschlossen ... und außerdem ist es hier richtig aufgehoben.

Habe 2 ESPEasy esp8266 upgedatet und seit dem diese Meldung im Log:
2022.11.10 17:24:31 2: ESPEasy ESPEasy_192.168.3.73_51849: No basic authentication active but credentials received
Bei den älteren, die allerdings von 2019 sind, habe ich diese Meldung nicht. Weiß jemand, woher diese Meldung kommt? Und wie man sie beseitigen könnte (abgesehen von verbose 0) .... habe selber gesucht und auf esp-Seite nichts gefunden
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Nobbynews

Welche Version von ESPEasy??
In der vom 16.6.2022 habe ich das Problem nicht.

Wernieman

#2
Build:⋄ 20116 - Mega
System Libraries:⋄ ESP82xx Core 2843a5ac, NONOS SDK 2.2.2-dev(38a443e), LWIP: 2.1.2 PUYA support
Git Build:⋄ HEAD_56d3225
Plugin Count:⋄ 79 [Normal] [Testing] [TEST_A]
Build Origin: GitHub Actions
Build Time:⋄ Jun 16 2022 22:52:43
Binary Filename:⋄ ESP_Easy_mega_20220616_test_A_ESP8266_4M1M
Build Platform:⋄ Linux-5.10.102.1-microsoft-standard-WSL2-x86_64-with-glibc2.29
Git HEAD:⋄ HEAD_56d3225


Wobei sie funktioniert, ich habe keine Fehler feststellen können ...

P.S. mit der "normal" besteht auch das Problem, habe ich hier nur wegen einem Sensor auf Testing geändert

Edit:
Habe aber die aktuelle mega-20221105 noch nicht ausprobiert .. geht erst morgen ..
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

rob

Find ich gut, dass Du einen neuen Fred eröffnet hast  :D Wollte auch noch was schreiben und durfte nicht.

Im Modul scheint es ja um diese Stelle zu gehen:

if (!defined $u || !defined $p || $attr == 0) {
    if (defined $ah){
      Log3 $bname, 2, "$type $name: No basic authentication active but ".
                     "credentials received";
    }


Jetzt habe ich mir im Log mal den Inhalt ausgeben lassen von $u, $p, $attr und $ah
$u - leer
$p - leer
$attr - 0
$ah - Basic Og==


Wo genau $ah nun herbefüllt wird, hab ich allerdings noch nicht durchschaut. Aus dem Auruf der sub, OK. Und der lautet so:

  # check authorization
  if (!defined ESPEasy_isAuthenticated($hash,$header->{Authorization})) {
    ESPEasy_sendHttpClose($hash,"401 Unauthorized","");
    return;
  }


Also verbose mal auf 5 gedreht: $ah kommt also aus $header und das wiederum aus "Authorization":
'Content-Length' => 449,'Authorization' => 'Basic Og==','User-Agent' => 'ESP Easy/20116/Aug  9 2022 10:01:11'

Wenn ich das richtig deute, kommt es vom ESPEasy dahergesendet. Oder?

Meine Version von ESPEasy:
Git Build: mega-20220809_57b0c0c

Kann man das auf ESPEasy-Seite irgendwie debuggen?

VG
rob

Wernieman

Gute Frage .... komme nur aktuell nicht an deren Serielle Schnittstelle ...

Wie schon gesagt: Ansonsten klappt alles mir bekannte
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

rob

Ja, bei mir sonst auch alles fehlerfrei.
Ich schau mal was die anderen Devices mit älterem Firmwarestand und aktivem verb 5 ausgeben.

rob

also die älteren Geräte senden nix mit "Authorization"

... Received header: {'User-Agent' => 'ESP Easy/20103/Jan 16 2019 03:12:25','Content-Length' => 291,'Connection' => 'close','Host' => '192.168.x.x:8383'}

Für mich ein Indiz, dass es ein ESPEasy-Thema ist. Also nächster Schritt doch mal auf Verdacht das letzte Release flashen. Vielleicht wird ein Issue nötig. Mal schauen  :)

Wernieman

Habe einen auf das neueste upgedatet
Build:⋄ 20221105 - Mega
Und leider ... immer noch da ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

rob

Zitat von: Wernieman am 11 November 2022, 11:05:00
Und leider ... immer noch da ....
Schade eigentlich. Danke Dir fürs Ausprobieren.

Hab versucht zu debuggen was ESPEasy raw sendet. Übers WebIF hab ich dazu nix gefunden, also kurzerhand nc hergenommen:

nc -l 8383 > netcat_espeasy.txt


Und die Ausgabe mit aktueller Firmware schaut so aus:

POST /ESPEasy HTTP/1.1
Host: 192.168.x.x:8383
User-Agent: ESP Easy/20116/Aug  9 2022 10:01:11
Accept-Encoding: identity;q=1,chunked;q=0.1,*;q=0
Authorization: Basic Og==
Connection: keep-alive
Content-Length: 449

{"module":"ESPEasy","version":1.04,"data":{"ESP":{"name":"GasCounter","unit":0,"version":2,"build":20116,"build_notes":" - Mega","build_git":"mega-20220809_57b0c0c","node_type_id":17,"sleep":0,"ip":"192.168.x.x"},"SENSOR":{"0":{"deviceName":"GasCounter","valueName":"Count","type":6,"value":4},"1":{"deviceName":"GasCounter","valueName":"Total","type":6,"value":31412},"2":{"deviceName":"GasCounter","valueName":"Time","type":6,"value":86020}}}}


Im Vergleich dazu mit älterer Version so:

POST /ESPEasy HTTP/1.1
Content-Length: 291
Host: 192.168.x.x:8383
User-Agent: ESP Easy/20103/Jan 16 2019 03:12:25
Connection: close

{"module":"ESPEasy","version":"1.04","data":{"ESP":{"name":"Sonoff03","unit":0,"version":2,"build":20103,"build_notes":" - Mega","build_git":"mega-20190116","node_type_id":17,"sleep":0,"ip":"192.168.x.x"},"SENSOR":{"0":{"deviceName":"LED_green","valueName":"key","type":10,"value":"1"}}}}


Womit zwei Dinge bewiesen sind:

  • der Header wurde geändert
  • Authorization wird im Header von ESPEasy angeliefert

Entweder ist das also ein Bug in ESPEasy, oder Feature -> dann müsste ggf. im Modul auf "Basic Og==" reagiert werden ("!defined" im Modul passt dann imho nicht mehr).
Hab jedenfalls mal ein issue aufgemacht: https://github.com/letscontrolit/ESPEasy/issues/4355

VG
rob

Wernieman

#9
Danke fürs analysieren, wollte gerade probieren, auf die serielle Schnittstelle zu horchen.

Leider komme ich aktuell auf einen meiner ESP nicht mehr, obwohl er noch immer sendet

P.S. eine Reaktion da, jemand will es sich ansehen.
P.P.S Ich habe Credential gesetzt, also User/Passwort für espeasy FHEM
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Wernieman

Hey hab gesehen, das auf Deine Anfrage eine Antwort kam!

Hast Du den Fix auf ESPEasy-Seite selber kompiliert?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

rob

Ging wirklich super fix  :D. Nein, nicht selbst kompiliert. Im Link fanden sich die Binaries im Zip-File (ca. 1GB). Musste mich aber einloggen um dranzukommen.

rob

Zwischenzeitlich wurde der Fix ins Haupt-Repo übernommen. Leider habe ich es noch nicht geschafft, meine Wemos zu aktualisieren. Werde aber gerne berichten, sobald erfolgt. Ansonsten setzt gerne Eure Erfahrungen hier rein - dann muss keiner auf mich warten :)

rob

So, hab die Tage endlich mal meine betroffenen Devices aufs Build "mega-20221105" aktualisiert. Natürlich in der ESPEasy-Bridge verbose wieder auf 3 angehoben.
Bislang keine Meldung wie im Thread-Titel aufgetaucht. Sollte somit wieder OK sein  :)

Viele Grüße
rob

Wernieman

Ich bin irgendwie seit dem nicht richtig zum testen gekommen .. danke für Dein FeedBack!
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html