私はTokenAuthentication
を拡張しましたが、リクエストセッションを使用してトークンを格納するときの作業モデルがありますが、as described hereとしてAuthorization
を渡そうとすると、META変数HTTP_AUTHORIZATION 。私の最初の推測が許可ヘッダーは、Apacheによって除去されている、と私はいくつかのSを読んでいるということであるdjango rest_frameworkに権限ヘッダーがありません。これはapacheのせいですか?
{
'_content_type': '',
'accepted_media_type': 'application/json',
'_request': <WSGIRequest
path:/api/test_auth/,
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
COOKIES:{
'MOD_AUTH_CAS_S': 'ba90237b5b6a15017f8ca1d5ef0b95c1',
'csrftoken': 'VswgfoOGHQmbWpCXksGUycj94XlwBwMh',
'sessionid': 'de1f3a8eee48730dd34f6b4d41caa210'
},
META:{
'DOCUMENT_ROOT': '/etc/apache2/htdocs',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTPS': '1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch',
'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
'HTTP_AUTHORIZATION2': 'Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4c',
...
:私はまた、要求に表示されている私は、ヘッダパラメータとして「Authorization2」を渡した場合ということに気づきました/ Oの質問は、Apacheが基本的な認証と一致しない場合に値を破棄して認証すると述べていますが、AuthorizationヘッダーをDjangoとWSGIRequestに 'パススルー'させる方法はわかりません。誰もがこの問題を解決する方法を知っていますか?
それはそれを求めた後、自分の質問分に答えるために...
このApacheの動作を文書化するためのオープンチケットがあります:https://github.com/tomchristie/django-rest-framework/issues/488もし誰かが例えば何かに光を当てることができれば。この点でのNginxの動作も役立つでしょう。 –
@Tom Christie、これはあなたがnginxでやる方法です:proxy_no_cache $ http_pragma $ http_authorization; proxy_cache_bypass $ http_pragma $ http_authorization; proxy_set_header HTTP_AUTHORIZATION $ http_authorization; –
@ SalvatoreIovene私が掘っていたときに、その周りにいくつかの音符を見ました。恐らくNginxをプロキシとして使用する場合にのみ適用されます。 (?) –