96_allowed.pm - Änderungen für CORS

Begonnen von wex_storm, 25 März 2016, 20:44:34

Vorheriges Thema - Nächstes Thema

wex_storm

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

rudolfkoenig

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.