Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Http-авторизация на Perl |
Автор: Gekt0r 19.2.2009, 13:37 | ||
Всем привет, вопрос следующий.. Есть большой сайт, сделанный на перле с использованием HTML::Mason. Надо сделать возможность вешать апач-авторизацию на некоторые страницы сайта (и при желании ее отключать и снова включать из админки). Я несколько дней копаюсь и уже с этим завис. В инете нашел решение, однако оно требует подключения к апачу mod_rewrite, а хочется без этого. Пока все, что я сделал, это научился вызывать запрос авторизации на страницу:
благодаря этому, у меня вываливается запрос авторизации. Однако я не знаю, как получить данные, которые введет пользователь. Можете подсказать? |
Автор: arto 19.2.2009, 14:59 |
cgi не имеет доступа к данныем http-авторизации без трюков, как например с mod_rewrite. |
Автор: Gekt0r 19.2.2009, 15:14 |
а как тогда это можно сделать?) |
Автор: KSURi 19.2.2009, 16:09 | ||
Разве? а @ENV{qw(HTTP_USER HTTP_PASS)} ? |
Автор: ginnie 19.2.2009, 17:16 |
KSURi, откуда информация об этих переменных? Поиски в Google положительных результатов не дали. |
Автор: KSURi 19.2.2009, 17:43 |
Да уж, попутал я. Мало того, что вспомнил почему-то переменные окружения PHP_AUTH_USER и PHP_AUTH_PW из PHP (подумал, что в перле такие же есть), так и еще и их имена перепутал( Gekt0r, никуда не вставляйте. Ошибся я. |
Автор: arto 19.2.2009, 20:02 |
либо mod_rewrite, либо mod_perl. либо сделать авторизацию на сессиях. |
Автор: Gekt0r 20.2.2009, 12:42 |
А mod_perl'ом как это можно сделать? Именно http-авторизацию |
Автор: arto 20.2.2009, 14:01 |
у него есть доступ к потрохам протокола, т.е. доступ к паролю, который посылает клиент. |
Автор: Gekt0r 20.2.2009, 15:25 |
Я это знаю!) основная проблема, что я не знаю, как вытащить эти данные!) вот в мой код что и куда надо добавить, чтобы получить то, что вводит юзер? |
Автор: arto 24.2.2009, 07:51 |
http://www.modperl.com/book/chapters/ch6.html |
Автор: Gekt0r 25.2.2009, 12:06 |
не работает ссылка |
Автор: KSURi 25.2.2009, 13:47 |
Вот это посмотрите: http://perl.apache.org/docs/2.0/api/Apache2/Access.html#Synopsis |
Автор: Gekt0r 2.3.2009, 15:41 |
Хм.. Не ловится в скрипте имя и пароль без mod_rewrite я пробую через $r->user() и $r->get_basic_auth_pw получаю пустые строки вместо переменных. Однако, есть директории, которые прописаны в httpd.conf, и на которых авторизация работает. В чем разница вообще? По идее, что в httpf.conf прописано, что я вручную заголовки посылаю (как в первом посте), разницы быть не должно? |
Автор: ginnie 2.3.2009, 15:48 |
Gekt0r, разница в том, что когда Basic-аутентификация прописана в конфиге, apache обрабатывает поле Authorization, в случае, если Вы самостоятельно посылаете заголовки, apache это поле не обрабатывает, и Вам надо это делать самостоятельно. |
Автор: Gekt0r 3.3.2009, 17:09 |
это можно сделать без mod_rewrite? и как?... |