Python Flask mod-wsgi自定义标题不在请求中

时间:2014-09-23 14:41:58

标签: python apache flask mod-wsgi

我是一个简单的Python Flask应用程序,它由Apache通过mod_wsgi提供。

我的应用程序的一部分完全在我的localhost上运行,但是无法通过mod_wsgi工作是访问自定义请求标头。

当我请求某个网页时,我会传递一个名为auth_user的标题。在我的localhost上,我可以访问此标头:request.headers["auth_user"],效果很好。但是,当通过Apache和mod_wsgi提供时,此自定义标头不存在!打印所有request.headers表示已发送标准Content-TypeCache-Control标头,但不会发送我已发送到本地主机的auth_user标头,没有任何问题。

Tcpdump显示服务器is正在接收标头,但在我的request.headers中无法使用。

有没有人知道为什么这个标题在应用程序中不可用?

3 个答案:

答案 0 :(得分:8)

这个人花了我很多时间......

原则上只允许使用字母数字字符或“ - ”。

任何不符合这些标题的标题都将被忽略。

http://modwsgi.readthedocs.org/en/latest/release-notes/version-4.3.0.html< - 错误修复,第2点。

答案 1 :(得分:1)

解决方案是将声明前缀设置为不包含_的内容

OIDCClaimPrefix OIDC-CLAIM-

答案 2 :(得分:0)

确保您的Apache配置将WSGIPassAuthorization directive设置为“开”,以便您的标头越过Apache + WSGI并到达Flask应用。