我有一个网站,只有注册用户才能登录和查看文档,现在文档通过apache提供,如果你有URL,可以直接查看而无需登录。我想使用Django身份验证保护这些文件夹,我试图这样做,但没有任何成功:
的httpd.conf:
WSGIScriptAlias / /home/www/wsgi-scripts/mysite.wsgi
<Directory /home/www/wsgi-scripts>
Order allow,deny
Allow from all
</Directory>
<Location /media/protected>
AuthType Basic
AuthName "Authentication Required"
AuthBasicProvider wsgi
WSGIAuthUserScript /home/www/wsgi-scripts/auth.wsgi
Require valid-user
</Location>
auth.wsgi:
import os, sys
os.environ['PYTHON_EGG_CACHE'] = '/tmp'
apache_configuration= os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)
sys.path.append('/usr/lib/python2.4/site-packages/django/')
sys.path.append('/home/www')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
from django.contrib.auth.models import User
from django import db
import threading
cache = threading.local()
def check_password(environ, username, password):
cache.username = None
cache.permissions = ['']
db.reset_queries()
kwargs = {'username': username, 'is_active': True}
try:
try:
user = User.objects.get(**kwargs)
except User.DoesNotExist:
return None
if user.check_password(password):
cache.username = username
cache.permissions = user.get_group_permissions()
return True
else:
return False
finally:
db.connection.close()
我做错了什么?
THKS
答案 0 :(得分:0)
请看一下这个代码段:http://djangosnippets.org/snippets/491/
无论如何在apache之前运行nginx很有用,因为apache会严重处理缓慢的客户端。
答案 1 :(得分:0)
Apache错误日志文件中有哪些错误消息?
此外,什么'mod_auth *'模块被加载到您的Apache?
即,正在加载以下内容:
LoadModule authn_file_module libexec/apache2/mod_authn_file.so
LoadModule authn_dbm_module libexec/apache2/mod_authn_dbm.so
LoadModule authn_anon_module libexec/apache2/mod_authn_anon.so
LoadModule authn_dbd_module libexec/apache2/mod_authn_dbd.so
LoadModule authn_default_module libexec/apache2/mod_authn_default.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so
LoadModule authz_user_module libexec/apache2/mod_authz_user.so
LoadModule authz_dbm_module libexec/apache2/mod_authz_dbm.so
LoadModule authz_owner_module libexec/apache2/mod_authz_owner.so
LoadModule authz_default_module libexec/apache2/mod_authz_default.so
LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so
LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
它们的某些子集是必需的。以上列表适用于Apache 2.2。我不记得我的头脑中哪些是必需的,但更新问题与你现在加载的内容。