FHEM Forum

FHEM => Automatisierung => Thema gestartet von: wex_storm am 25 März 2016, 20:44:34

Titel: 96_allowed.pm - Änderungen für CORS
Beitrag von: wex_storm am 25 März 2016, 20:44:34
Hallo,

ich hätte eine Anderung für die Datei 96_allowed.pm.
Es geht darum, dass ich mir eine kleine App (werde Sie bei Gelegenheit hochladen) mit dem ionic Framework für fhem zusammengebaut habe. Ich möchte nun auf zwei Arten auf meine fhem-Instanz zugreifen:
1. Lokal (geht ohne Probleme)
2. Von Extern über meinen Router, falls ich z.B. nicht zu Hause bin - gesichert über basicAuth.

Nun ist das Problem, dass ich die GET-Requests natürlich über CORS laufen und so ziemlich alle Browser einen preflight Request per OPTIONS an fhem senden. Der OPTIONS-Request untertstützt leider keine basicAuth Headerinformation und so läuft der Request in eine 401 Fehler (was ja auch korrekt ist).
Ich habe mir nun mal einfach diese beiden Zeilen


my @headerOptions = grep /OPTIONS/, @FW_httpheader;
return 1 if($headerOptions[0]);


in der Datei 96_allowed.pm an Zeile 95 geschrieben (zusammengedampft aus einer alten 01_FHEMWEB.pm -Datei) - nun funktioniert es komplett ohne Probleme mit basicAuth, da der OPTIONS preflight einfach übergangen wird.
Wäre das eine Überlegung wert mit in die Datei aufzunehmen?

Viele Grüße

    Björn
Titel: Antw:96_allowed.pm - Änderungen für CORS
Beitrag von: rudolfkoenig am 03 April 2016, 16:55:13
Sorry, es hat etwas laenger gedauert, da ich unsicher war, und nachdenken musste. Ich habe es eingecheckt, als:
return 1 if($FW_httpheader[0] =~ m/^OPTIONS /);
Bleibt trotzdem etwas unsauber, da @FW_httpheader global ist.

Kannst mir bitte beschreiben, wie ich OPTIONS generieren kann?
Ich wuerde es gerne selbst testen.