django – защитить некоторые веб-пути с помощью базовой аутентификации

StackOverflow https://stackoverflow.com/questions/1371716

Вопрос

Я новичок в Джанго и просто пробую пару простых экспериментов, чтобы намочить ноги.я использую 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top