django – защитить некоторые веб-пути с помощью базовой аутентификации
-
21-09-2019 - |
Вопрос
Я новичок в Джанго и просто пробую пару простых экспериментов, чтобы намочить ноги.я использую django 1.0, префорк apache2 и 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 отличается.Это хакерство, но оно работает..
Есть ли лучший способ сделать то, что я хочу?
Есть ли какие-либо недостатки в таком подходе?
Спасибо
Решение
Изменять:
<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