Apache-Streifen "Authorization" - header
Ich habe da ein kleines Problem mit meinem Apache 2.2.15 Server.
Ich bin mit einer Django-app auf der Oberseite der es mit mod_wsgi. Ich aktivierte WSGIPassAuthorization On
, die aus der Basic-auth funktioniert gut. Aber ich habe vor kurzem implementiert OAuth2.0 zum sichern meiner API (Implizite Gewährung), und ich denke, dass Apache nicht ließ es durchgehen, da es von dem Formular "Authorization: Bearer-token". Die "Stütze" ist die Frage, die ich Schätze, obwohl ich nicht weiß, wie man das vermeiden.
Habe ich versucht :
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
In der httpd.conf .htaccess (nach Einstellung AllowOverride All
), und in meiner vhost. Nichts zu tun, funktioniert nicht.
Ich habe durchforstete das Internet den ganzen Tag lang, und habe nichts gefunden, aber diese zwei Lösungen.
Vielen Dank im Voraus !
EDIT:
OS : RedHatEL6.4
Apache : 2.2.15
Django: 1.6.6 w/ django-oauth-toolkit
Python: 2.7.8
Ich bin mir nicht sicher über die .htaccess, obwohl fast sicher, es ist das Lesen der httpd.conf (änderungen in dieser Datei Einfluss auf das server-Verhalten). Gibt es einen bestimmten Ort in der Datei, ich sollte diese Zeilen, obwohl ? Danke für deine Antwort btw, und ich habe gerade überprüft, mod_proxy aktiviert ist. Ich neu gestartet, mit
apachectl restart
und apachectl stop; apachectl start
, hat nicht das Problem zu lösen :/.Ok, mit zu beginnen, was Sie ausführen müssen, ist
service httpd restart
apache neu starten, richtig auf einem RH/CentOS server. Dies könnte verursachen Sie Probleme. AUCH würde ich nicht machen diese änderungen auf alle http.conf als dies ist die zentrale Konfigurationsdatei für den apache - NICHT die Konfigurationsdatei für Ihre website. Sie wollen die Sachen zu Bearbeiten, die in /etc/httpd/conf.d/yourSite.conf
so würde ich vorschlagen, dort suchen, und macht alle änderungen, die Sie Tat, um die Standard-apache-Konfiguration.Meine Vhost im conf.d/mysite.conf 😉 ! Habe gerade versucht das
service httpd restart
, hat nicht das Problem zu lösen, aber es ist gut zu wissen für die Zukunft. Ich Mach die änderung nur mysite.conf von nun an, und ich danke Euch für die Hilfe und den link zu dem tutorial !Es habe ! Nochmals vielen Dank !
InformationsquelleAutor Martin Latrille | 2014-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich mein problem gelöst, die schließlich völlig unabhängig voneinander zu meiner Apache-Konfiguration. Also, wenn Sie finden dieses Thema auf der Suche nach einer Antwort auf das gleiche problem, eine der folgenden Lösungen beheben sollte :
Config WSGI :
Config .htaccess :
Können Sie diese beiden in Ihre httpd/conf.d/Projekt.conf-Datei !
SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
zu.htaccess
Das half mir sehr.
die
RewriteRule
und dieSetEnvIf
Richtlinien eigentlich das gleiche tun (legen Sie die UmgebungsvariableHTTP_AUTHORIZATION
auf den Inhalt derAuthorization
header), so dass nur eines der beiden notwendig sein sollte.Ich habe versucht, "WSGIPAssAuthorization Auf" und "RewriteEngine" - Zeilen oben. "Authorization" - header begann zu erscheinen, aber war leer. Also ich habe fallen gelassen all diese Linien und fügte nur eine Zeile empfohlen von @simo - es begann wie erwartet arbeiten! Danke.
Hinzugefügt, nur das "WSGIPAssAuthorization Auf" apache-Konfiguration und es funktioniert jetzt. Danke!
InformationsquelleAutor Martin Latrille
Mehrere Module Streifen der Authorization-header, um zu versuchen, um die Sicherheit zu erhöhen, indem verhindert scripts aus zu sehen, Benutzernamen, Passwörter, etc... es sei denn, der Entwickler ausdrücklich ermöglicht. Viele dieser Module werden es erlauben, diese header, wenn Sie einfach die folgende Zeile hinzufügen .htaccess:
CGIPassAuth on
(Quelle: Apache docs und StackOverflow)InformationsquelleAutor BeetleJuice