相关疑难解决方法(0)

django rest_framework中缺少授权头,是否应该归咎于什么?

我设法扩展TokenAuthentication并且在使用请求会话来存储我的令牌时有一个工作模型,但是当我尝试作为此处所述Authorization的头参数传递时,我注意到我的响应没有META变量HTTP_AUTHORIZATION.我还注意到,如果我将"Authorization2"作为标头参数传递,它在请求中可见:

{
    '_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',
           ...
Run Code Online (Sandbox Code Playgroud)

我的第一个猜测是apache正在删除授权头,并且我已经阅读了一些S/O问题,这些问题表明,如果apache与基本授权不匹配并进行身份验证,则会丢弃该值,但我不知道如何允许Authorization标头"传递"到Django和WSGIRequest.有谁知道如何解决这个问题?

我也使用mod_auth_cas和mod_proxy,如果改变了什么..

apache authorization apache2 mod-proxy django-rest-framework

56
推荐指数
3
解决办法
2万
查看次数

Apache删除了"授权"标题

我的Apache 2.2.15服务器有点问题.我正在用mod_wsgi运行一个Django应用程序.我激活了WSGIPassAuthorization On,这使得Basic auth运行良好.但我最近实施了OAuth2.0来保护我的API(隐式授权),我认为Apache不会让它通过,因为它的形式是"授权:承载令牌".我想这是"持票人"的问题,但我不知道如何避免这种情况.

我试过了 :

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
Run Code Online (Sandbox Code Playgroud)

在httpd.conf,.htaccess(设置之后AllowOverride All)和我的vhost中.无所事事,无效.我整天都在网上爬行,除了这两个解决方案之外什么都没找到.

先感谢您 !

编辑:

OS : RedHatEL6.4
Apache : 2.2.15
Django: 1.6.6 w/ django-oauth-toolkit
Python: 2.7.8
Run Code Online (Sandbox Code Playgroud)

apache django mod-wsgi oauth-2.0

11
推荐指数
2
解决办法
2万
查看次数