Я хочу иметь базовую аутентификацию в моем приложении django с помощью базовой аутентификации apache.
моя конфигурация выглядит следующим образом:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName url.test.com
ServerAdmin webmaster@localhost.com
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
WSGIDaemonProcess projectname \
python-home=/home/user/app/project/env \
python-path=/home/user/app/project:/home/user/app/project/env/lib/python3.5/site-packages/
WSGIProcessGroup projectname
WSGIScriptAlias / /home/user/app/project/app/server/wsgi.py
WSGIPassAuthorization On
Alias /static/ /home/user/app/app/project/static/
ErrorLog ${APACHE_LOG_DIR}/error-log
CustomLog ${APACHE_LOG_DIR}/access-log combined
LogLevel info
# Protecting with basic authentication
<Location />
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require user testuser
AuthBasicProvider wsgi
WSGIAuthUserScript /home/user/app/project/app/server/wsgi.py
</Location>
SSLCertificateFile /etc/letsencrypt/live/project.app.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/project.app.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
и wsgi.py, содержащий:
import os
import sys
sys.path.insert(0, '/home/user/app/project')
sys.path.append('/home/user/app/project/env/lib/python3.5/site-packages')
os.environ["DJANGO_SETTINGS_MODULE"] = "project.app.settings"
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
с этой настройкой, я получаю сообщение об ошибке:
AH01618: пользовательский пользователь теста не найден: /
после некоторого исследования я увидел, что мне, вероятно, следует удалить AuthBasicProvider
и WSGIAuthUserScript
из Location
в:
# Protecting with basic authentication
<Location />
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require user testuser
</Location>
, что приведет к тому, что пароль будет принят, но затем я получу 403 ошибка в приложении django:
Запрещено: /
[11 / Mar / 2020 17:23:35] "GET / HTTP / 1.1" 403 13
, так как я обычно больше разбираюсь в программировании, я не очень знаком с настройкой приложения django за apache и с трудностями. Кто-нибудь видит мою проблему?