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×tamp=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×tamp=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×tamp=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×tamp=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×tamp=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×tamp=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#
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.
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.
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.
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?
Ja, weil der neue Chrome mit HTTP longpoll Probleme hat.