【问题标题】:django - protect some web paths with basic authenticationdjango - 使用基本身份验证保护一些 Web 路径
【发布时间】:2009-09-03 06:38:41
【问题描述】:

我对 django 还很陌生,只是尝试了几个简单的实验来弄湿我的脚。我正在运行 django 1.0、apache2 prefork 和 mod_wsgi。 我正在尝试使用以下 url 结构构建网站

/
/members
/admin

根基本上是一个公共区域。
应使用基本身份验证(可能由 apache 进行身份验证)保护成员路径
应该使用内置的 django 身份验证来保护管理路径。

按照文档中的示例,我基本上可以通过基本身份验证保护整个站点,但这不是我想要的。

虚拟主机配置除外:

WSGIScriptAlias / /django/rc/apache/django.wsgi
<Directory /django/rc/apache>
AuthType Basic
AuthName "Authentication Required"
AuthUserFile "/django/_HTPASSWD/.htpasswd"
Require valid-user

# Order allow,deny
# Allow from all
</Directory>

谁能帮我指出正确的方向(或直截了当地告诉我 =P)如何使这成为可能?

谢谢


编辑: 玩了一会儿后,我发现我可以做类似的事情:

WSGIScriptAlias / /django/rc/apache/django.wsgi
<Directory /django/rc/apache>
Order allow,deny
Allow from all
</Directory>

WSGIScriptAlias /members /django/rc/apache_httpauth/django.wsgi
<Directory /django/rc/apache_httpauth>
AuthType Basic
AuthName "Authentication Required"
AuthUserFile "/django/_HTPASSWD/.htpasswd"
Require valid-user

</Directory>

django.wsgi 文件基本上是复制到另一个目录的同一个文件,因此 WSGIScriptAlias 是不同的。这是hack-ish,但它有效..

有没有更好的方法来做我想做的事?
这样做有什么缺点吗?

谢谢

【问题讨论】:

    标签: django django-admin mod-wsgi basic-authentication


    【解决方案1】:

    变化:

    <Directory /django/rc/apache_httpauth>
    AuthType Basic
    AuthName "Authentication Required"
    AuthUserFile "/django/_HTPASSWD/.htpasswd"
    Require valid-user
    </Directory>
    

    到:

    <Location /members>
    AuthType Basic
    AuthName "Authentication Required"
    AuthUserFile "/django/_HTPASSWD/.htpasswd"
    Require valid-user
    </Location>
    

    我认为你不需要:

    WSGIScriptAlias /members /django/rc/apache_httpauth/django.wsgi
    

    【讨论】:

    • 整个网站都是在 django 中完成的,而不是在管理部分。如果我取出 WSGIScriptAlias,apache 怎么知道如何运行 django 站点?即 /members 是在 urls.py 中定义的网络路径。它实际上并不存在于文件系统上。顺便说一句,我记得在你的博客上读过一些东西,以供过去参考 django 的东西。只是想说谢谢。
    • 您仍然保留第一个 WSGIScriptAlias 用于在站点根目录安装应用程序,只需去掉子 URL。我在这里假设它们最终解决了相同的应用程序。 Location 指令只是将限制应用于主应用程序的 URL 子集。
    • 啊,我没有注意到您指定了“位置”指令而不是“目录”指令。我明天试试。谢谢!
    • 我相信你打错了“目录”右括号,应该是
    • 固定字节更改为关闭位置。
    猜你喜欢
    • 2016-12-22
    • 2021-09-24
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多