Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Http-авторизация на Perl, как сделать? 
:(
    Опции темы
Gekt0r
Дата 19.2.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Всем привет, вопрос следующий..
Есть большой сайт, сделанный на перле с использованием HTML::Mason.
Надо сделать возможность вешать апач-авторизацию на некоторые страницы сайта (и при желании ее отключать и снова включать из админки).
Я несколько дней копаюсь и уже с этим завис.
В инете нашел решение, однако оно требует подключения к апачу mod_rewrite, а хочется без этого.

Пока все, что я сделал, это научился вызывать запрос авторизации на страницу:


Код

use CGI;

my $q = CGI->new;
print $q->header(-status => 401,
                  -www_authenticate => 'Basic realm="test"',
                  -type => 'text/html'),
       $q->start_html('Authorization required'),
       $q->h2('Authorization required'),
       $q->end_html;


благодаря этому, у меня вываливается запрос авторизации. Однако я не знаю, как получить данные, которые введет пользователь. Можете подсказать?
PM MAIL   Вверх
arto
Дата 19.2.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



cgi не имеет доступа к данныем http-авторизации без трюков, как например с mod_rewrite.

PM MAIL ICQ   Вверх
Gekt0r
Дата 19.2.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



а как тогда это можно сделать?)
PM MAIL   Вверх
KSURi
Дата 19.2.2009, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Цитата(arto @  19.2.2009,  14:59 Найти цитируемый пост)
cgi не имеет доступа к данныем http-авторизации без трюков, как например с mod_rewrite.

Разве? а @ENV{qw(HTTP_USER HTTP_PASS)} ?


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
Gekt0r
Дата 19.2.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Цитата(KSURi @ 19.2.2009,  16:09)
Цитата(arto @  19.2.2009,  14:59 Найти цитируемый пост)
cgi не имеет доступа к данныем http-авторизации без трюков, как например с mod_rewrite.

Разве? а @ENV{qw(HTTP_USER HTTP_PASS)} ?

Куда это вставить в моем коде?)))
PM MAIL   Вверх
ginnie
Дата 19.2.2009, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



KSURi, откуда информация об этих переменных? Поиски в Google положительных результатов не дали.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
KSURi
Дата 19.2.2009, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Да уж, попутал я. Мало того, что вспомнил почему-то переменные окружения PHP_AUTH_USER и PHP_AUTH_PW из PHP (подумал, что в перле такие же есть), так и еще и их имена перепутал(

Gekt0r, никуда не вставляйте. Ошибся я.


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
arto
Дата 19.2.2009, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



либо mod_rewrite, либо mod_perl.

либо сделать авторизацию на сессиях.
PM MAIL ICQ   Вверх
Gekt0r
Дата 20.2.2009, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



А mod_perl'ом как это можно сделать?
Именно http-авторизацию
PM MAIL   Вверх
arto
Дата 20.2.2009, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



у него есть доступ к потрохам протокола, т.е. доступ к паролю, который посылает клиент.
PM MAIL ICQ   Вверх
Gekt0r
Дата 20.2.2009, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Я это знаю!)
основная проблема, что я не знаю, как вытащить эти данные!)
вот в мой код что и куда надо добавить, чтобы получить то, что вводит юзер?
PM MAIL   Вверх
arto
Дата 24.2.2009, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



PM MAIL ICQ   Вверх
Gekt0r
Дата 25.2.2009, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



не работает ссылка
PM MAIL   Вверх
KSURi
Дата 25.2.2009, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Цитата(Gekt0r @  25.2.2009,  12:06 Найти цитируемый пост)
не работает ссылка 

Вот это посмотрите: http://perl.apache.org/docs/2.0/api/Apache...s.html#Synopsis


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
Gekt0r
Дата 2.3.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Хм.. Не ловится в скрипте имя и пароль без mod_rewrite

я пробую через $r->user() и $r->get_basic_auth_pw
получаю пустые строки вместо переменных.

Однако, есть директории, которые прописаны в httpd.conf, и на которых авторизация работает. 
В чем разница вообще? По идее, что в httpf.conf прописано, что я вручную заголовки посылаю (как в первом посте), разницы быть не должно?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1153 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.