[gelöst]: allowed - Logeinträge trotz erfolgreicher Anmeldung kein Longpoll

Begonnen von Benni, 17 Februar 2018, 13:47:52

Vorheriges Thema - Nächstes Thema

Benni

Hallo,

Ich habe das Phänomen, dass ich bei aktiviertem allowed für eine FHEMWEB-Instanz, trotz erfolgreicher Anmeldung von Safari aus an dieser FHEMWEB-Instanz, anschließend folgende Meldungen im Log finde.


2018.02.17 13:09:43 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52026
2018.02.17 13:09:48 3: Login denied by allowedFWEB for benni via FWEB_192.168.178.57_52026
2018.02.17 13:10:48 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52087
2018.02.17 13:10:48 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52088
2018.02.17 13:10:48 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52087
2018.02.17 13:10:53 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52089
2018.02.17 13:10:58 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52092
2018.02.17 13:11:03 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52093
2018.02.17 13:11:08 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52097
2018.02.17 13:11:13 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52104
2018.02.17 13:11:18 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52106
2018.02.17 13:11:23 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52107
2018.02.17 13:11:28 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52112
2018.02.17 13:11:33 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52114
2018.02.17 13:11:38 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52117
2018.02.17 13:11:43 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52123
2018.02.17 13:11:48 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52124
2018.02.17 13:11:53 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52126
2018.02.17 13:11:58 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52129
2018.02.17 13:12:03 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52130
2018.02.17 13:12:08 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52133
2018.02.17 13:12:11 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52134
2018.02.17 13:12:11 3: Login denied by allowedFWEB for  via FWEB_192.168.178.57_52135


Gleichzeitig meldet mein Browser (in diesem Fall Safari), von dem aus ich diese, per allowed abgesicherte FHEMWEB-Instanz aufgerufen und mich erfolgreich angemeldet habe nur noch "Connection lost, trying a reconnect every 5 seconds" (s. Screenshot).

Longpoll funktioniert dementsprechend natürlich nicht mehr. Schalten an sich geht aber.

Bei dieser FHEMWEB-Instanz steht longpoll auf websocket.


List der FHEMWEB-Instanz:


Internals:
   CFGFN     
   CONNECTS   98
   CSRFTOKEN  csrf_520173411766558
   DEF        8086 global
   FD         17
   NAME       FWEB
   NR         646
   NTFY_ORDER 50-FWEB
   PORT       8086
   STATE      Initialized
   TYPE       FHEMWEB
   READINGS:
     2018-02-17 07:27:59   startup_host    rocker01
Attributes:
   DbLogExclude .*
   JavaScripts codemirror/fhem_codemirror.js
   codemirrorParam { "height":"auto","theme":"default", "lineNumbers":true ,"jumpToLine":true}
   column     Beleuchtung:EG-Licht|OG-Licht,UG-Licht
   endPlotNow 1
   icon       it_internet
   iconPath   $styleSheetPrefix:default:fhemSVG:openautomation:custom:custom/svg
   longpoll   websocket
   ploteditor onClick
   room       99.00_FHEM
   sortRooms  Uebersicht Beleuchtung 10.00_EG EG\..* 20.00_OG 30.00_UG
   widgetOverride bbLocation:textField-long bbComment:textField-long


List der zugehörigen (einzigen) allowed-Instanz:


nternals:
   CFGFN     
   NAME       allowedFWEB
   NR         864
   STATE      validFor:FWEB,WEBTEXT,WEBphone
   TYPE       allowed
   allowedCommands get,set
   validFor   FWEB,WEBTEXT,WEBphone
   READINGS:
     2018-02-17 07:27:57   state           validFor:FWEB,WEBTEXT,WEBphone
Attributes:
   DbLogExclude .*
   allowedCommands get,set
   basicAuth  SHA256:<** removed **>
   room       99.00_FHEM
   validFor   FWEB,WEBTEXT,WEBphone
   verbose    4


Ich habe gerade auch nochmal im Safari-Browser die Java-Konsole dazu konsultiert. Dort finden sich dann im 5-Sekundentakt folgende Einträge:


[Error] WebSocket connection to 'ws://rocker01:8086/fhem?XHR=1&inform=type=status;filter=room=Beleuchtung;since=1518869535;fmt=JSON&fw_id=5981&timestamp=1518870631443' failed: Unexpected response code: 401
[Log] 13:30:31.459 ERRMSG:Connection lost, trying a reconnect every 5 seconds.< (fhemweb.js, line 427)
[Log] 13:30:36.360 ERRMSG:< (fhemweb.js, line 427)
[Log] 13:30:36.460 Inform-channel opened (websocket) with filter room=Beleuchtung (fhemweb.js, line 427)
[Error] WebSocket connection to 'ws://rocker01:8086/fhem?XHR=1&inform=type=status;filter=room=Beleuchtung;since=1518869535;fmt=JSON&fw_id=5981&timestamp=1518870636460' failed: Unexpected response code: 401
[Log] 13:30:36.519 ERRMSG:Connection lost, trying a reconnect every 5 seconds.< (fhemweb.js, line 427)
[Log] 13:30:41.421 ERRMSG:< (fhemweb.js, line 427)
[Log] 13:30:41.520 Inform-channel opened (websocket) with filter room=Beleuchtung (fhemweb.js, line 427)
[Error] WebSocket connection to 'ws://rocker01:8086/fhem?XHR=1&inform=type=status;filter=room=Beleuchtung;since=1518869535;fmt=JSON&fw_id=5981&timestamp=1518870641520' failed: Unexpected response code: 401
[Log] 13:30:41.581 ERRMSG:Connection lost, trying a reconnect every 5 seconds.< (fhemweb.js, line 427)
[Log] 13:30:46.483 ERRMSG:< (fhemweb.js, line 427)
[Log] 13:30:46.589 Inform-channel opened (websocket) with filter room=Beleuchtung (fhemweb.js, line 427)
[Error] WebSocket connection to 'ws://rocker01:8086/fhem?XHR=1&inform=type=status;filter=room=Beleuchtung;since=1518869535;fmt=JSON&fw_id=5981&timestamp=1518870646588' failed: Unexpected response code: 401
[Log] 13:30:46.806 ERRMSG:Connection lost, trying a reconnect every 5 seconds.< (fhemweb.js, line 427)
[Log] 13:30:51.707 ERRMSG:< (fhemweb.js, line 427)
[Log] 13:30:51.808 Inform-channel opened (websocket) with filter room=Beleuchtung (fhemweb.js, line 427)
[Error] WebSocket connection to 'ws://rocker01:8086/fhem?XHR=1&inform=type=status;filter=room=Beleuchtung;since=1518869535;fmt=JSON&fw_id=5981&timestamp=1518870651808' failed: Unexpected response code: 401
[Log] 13:30:52.360 ERRMSG:Connection lost, trying a reconnect every 5 seconds.< (fhemweb.js, line 427)
[Log] 13:30:57.261 ERRMSG:< (fhemweb.js, line 427)
[Log] 13:30:57.361 Inform-channel opened (websocket) with filter room=Beleuchtung (fhemweb.js, line 427)
[Error] WebSocket connection to 'ws://rocker01:8086/fhem?XHR=1&inform=type=status;filter=room=Beleuchtung;since=1518869535;fmt=JSON&fw_id=5981&timestamp=1518870657361' failed: Unexpected response code: 401
[Log] 13:30:57.458 ERRMSG:Connection lost, trying a reconnect every 5 seconds.< (fhemweb.js, line 427)


Keine Ahnung, ob das nun zu FHEMWEB oder allowed gehört, da die Meldung aber von allowed ausgegeben wird, habe ich das mal hier eingestellt.

gb#

rudolfkoenig

Klingt so, als ob Safari kein basicAuth mitschicken wuerde.
Eigentlich sollte das nach Abfrage des Passwortes der Fall sein.
Funktioniert es mit Chrome oder Firefox?
Die Meldungen oben sind mit dem update morgen behoben.

Benni

Scheint tatsächlich ein, auf Safari beschränktes Problem zu sein.
Weder mit Chrome, noch mit Firefox zeigt sich das verhalten.

Dafür kann ich es mit Safari zuverlässig reproduzieren.
Und das konsequent unter macOS und unter iOS.


rudolfkoenig

Soweit ich sehe, sendet Safari bei einem Websocket Request im HTTP Header keine "Authorization: Basic XXXX" Zeile.
Das Problem scheint seit laengerem (mind. 2015) zu bestehen, und Apple hatte bisher nicht die Musse, daran was zu aendern.
Alternativen: kein Passwort, kein websocket, kein Safari, oder eine neue Login-Methode. Letzteres duerfte aufwendig sein.

Das Problem hat nichts mit dem juengsten Aenderungen in allowed zu tun, und duerfte noch nie in dieser Kombination (Safari+Websocket+Passwort) funktioniert haben.

Benni

Zitat von: rudolfkoenig am 17 Februar 2018, 20:22:54
Alternativen: kein Passwort, kein websocket, kein Safari, oder eine neue Login-Methode. Letzteres duerfte aufwendig sein.

Mit den ersten 3 Alternativen kann ich in meinem Fall problemlos leben, kann man sich letzteres also getrost sparen! :)

Danke!

Ich habe diese FHEMWEB-Instanz jetzt erst mal wieder auf longpoll=1 gesetzt.
Damit scheint es tatsächlich auch in Safari wieder zu funktionieren.

Bei Chrome wird, falls korrekt erkannt, ja glaube ich inzwischen automatisch longpoll auf websocket gesetzt?




rudolfkoenig