我是一个简单的Python Flask应用程序,它由Apache通过mod_wsgi提供。
我的应用程序的一部分完全在我的localhost上运行,但是无法通过mod_wsgi工作是访问自定义请求标头。
当我请求某个网页时,我会传递一个名为auth_user
的标题。在我的localhost上,我可以访问此标头:request.headers["auth_user"]
,效果很好。但是,当通过Apache和mod_wsgi提供时,此自定义标头不存在!打印所有request.headers
表示已发送标准Content-Type
,Cache-Control
标头,但不会发送我已发送到本地主机的auth_user
标头,没有任何问题。
Tcpdump显示服务器is
正在接收标头,但在我的request.headers
中无法使用。
有没有人知道为什么这个标题在应用程序中不可用?
答案 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应用。