2011-01-03 4 views
1

Я ищу, чтобы контролировать доступ к некоторым большим файлам (здесь мы говорим много GB), используя подписанные URL-адреса. В настоящее время файлы ограничены обычной аутентификацией LDAP (mod_auth_ldap), но мне нужно изменить это, чтобы проверить подпись (переданную как параметр запроса в URL-адресе).Управление доступом к большим файлам в Apache

В принципе, мне просто нужно запустить скрипт, чтобы проверить подпись, и разрешить запрос действовать так, как будто аутентификация прошла успешно. Моя первоначальная мысль заключалась в том, чтобы просто использовать простой скрипт CGI, но поскольку файлы настолько велики, я обеспокоен производительностью. Итак, действительно, этот вопрос (возможно) более похож на «есть ли какие-либо последствия для потоковой передачи больших файлов из CGI-скрипта через Apache?» ... и если да, «есть ли лучший способ сделать это (если не написать специальный модуль аутентификации)? "

Если это имеет смысл, помощь была бы оценена :)

P.S. Я не был уверен точно, что искать для этого (10 минут Googling были бесплодными), поэтому я вполне могу дублировать чужой пост.

ответ

0

Я решил решить это с помощью CGI-скрипта, как было сказано ... cookie не был вариантом, потому что мы должны поддерживать клиентов, которые не используют файлы cookie (apt).

0

Посмотрите на криптовальные файлы cookie/сеансы в apache - один из способов сделать это - установить обязательный лимит сеанса в этом каталоге - перенаправить всех, кто не имеет действительного, в cgi-script ; auth, а затем перейдите обратно к фактической загрузке.

Таким образом, apache может использовать свой обычный файл sendfile() и другие оптимизации.

Однако имейте в виду, что сценарий оболочки или perl-скрипт, заканчивающийся простым «execvp», «exec cat» или что-то в этом роде, не так дорого.

Альтернатива более основанная на uRL - как http://authmemcookie.sourceforge.net/.

Dw.