Авторизация в mod_wsgi
У меня есть следующие настройки,
WSGIScriptAlias /i C:/Project/Scripts/hello.wsgi
WSGIScriptAlias /hello C:/Project/Scripts/hello.wsgi
<Directory "C:/Project/Scripts">
Order deny,allow
Allow from all
</Directory>
<Location /i>
AuthType Basic
AuthName "Top Secret"
AuthBasicProvider wsgi
WSGIAuthUserScript C:/Project/Scripts/authn.wsgi
WSGIAccessScript C:/Project/Scripts/auths.wsgi
Require valid-user
</Location>
<Location /hello>
AuthType Basic
AuthName "Top Secret"
AuthBasicProvider wsgi
WSGIAuthUserScript C:/Project/Scripts/authn.wsgi
Require valid-user
</Location>
AuthN
def check_password(environ, user, password):
if user == 'admin' or user == 'spy':
if password == 'secret':
return True
return False
return None
Авт
def allow_access(environ, host):
if environ.get('REMOTE_USER'):
if environ['REMOTE_USER'] == 'admin':
return True
return False
Запросы для _http://localhost/hello вывести запрос на вход в систему, как ожидалось... он работает нормально!
Запросы для _http: // localhost / я не выскакиваю при входе и возвращаю 403 Запрещено
Я что-то пропустил?! WSGIAccessScript не должен делать авторизацию?!
благодарю вас:\
РЕДАКТИРОВАТЬ
я получаю ошибку, что ключ 'REMOTE_USER'.
я полагаю, что скрипт аутентификации не работает:S
РЕДАКТИРОВАТЬ
Я тестировал это, чтобы сделать авторизацию нескольких хранилищ Subversion на основе информации БД,
Есть ли способ сделать это возвращение 403 запрещено, если аутентифицировано и не авторизовано?!
я знаю, что это возможно с mod_python, но я не хотел смешивать mod_python с mod_wsgi.
1 ответ
Нет, WSGIAccessScript не предназначен для авторизации пользователя, он предназначен исключительно для управления доступом на основе хоста, независимо от того, был ли пользователь аутентифицирован или авторизован. Авторизация пользователя осуществляется с использованием директивы WSGIAuthGroupScript. Увидеть:
http://code.google.com/p/modwsgi/wiki/AccessControlMechanisms