|
|
ru.perl
- RU.PERL ----------------------------------------------------------------------
From : Nick Tkachenko 2:5020/52 28 Jul 2000 18:06:22
To : All
Subject : Re: How change ENV{REMOTE_USER}?
--------------------------------------------------------------------------------
По разным технологическим соображениям хочу, чтобы REMOTE_USER _всегда_
была установлена.
Hо заставлять каждый раз юзера вводить логин/пароль, пусть даже guest/guest
нежелательно.
Я пошел по такому пути:
- корневой каталог закрыл .htaccess-ом
- при первом заходе юзера на сайт я автоматом делаю его GUEST-ом:
unless ($ENV{REMOTE_USER}) {
$r->connection->user("GUEST");
$r->set_handlers(PerlAuthenHandler => [\&OK]); #чтобы не выводить окошко
с запросом логина/пароля
}
!! Сразу же вопрос: как сохранить старый хендлер, чтобы при
ре-аутентификации его восстановить?
- -----
Ре-аутентификация: нужно сделать так, чтобы зарегистрированый пользователь
мог бы
войти под своим именем. Судя по всему, нужно сделать две вещи:
1. Восстановить хендлер аутентификации:
$r->set_handlers(PerlAuthenHandler => [\&(тот который был изначально)]);
2. Заставить бродилку выдать заново запрос на ввод логина/пароля: Можно
просто выдать заголовок 401,
либо использовать:
$r->note_basic_auth_failure;
return AUTH_REQUIRED;
Тогда, вроде как по логике, при успешной аутентификации (которую выполнит
хендлер по умолчанию) $ENV{REMOTE_USER} будет установлена в новое значение.
Можно правда написать свой модуль аутентификации и писать:
$r->set_handlers(PerlAuthenHandler => [\&My::AuthMod::handler]);
однако не хотелось бы.
P.S. По умолчанию у меня используется модуль аутентификации через MySQL
(mod_auth_sql).
P.P.S. А может я вообще это все зря горожу? Может есть какие-то готовые
решения?
--- Microsoft Outlook Express 4.72.2106.4
* Origin: FB (2:5020/52.0)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3028462d759dc.html, оценка из 5, голосов 10
|