Спасибо большое за ответ.
2 июля 2014 г., 13:54 пользователь Maxim Dounin <[email protected]> написал: > Hello! > > On Wed, Jul 02, 2014 at 01:08:14PM +0400, Maksim Zavyalov wrote: > > > Привет. Такой вопрос: возможно ли сделать авторизацию пользователей в > > зависимости от того, какие параметры были отправлены cgi-скрипту. > > > > Как пример: > > > > location / { > > > > fastcgi_param QUERY_STRING $query_string; > > fastcgi_param REQUEST_METHOD $request_method; > > fastcgi_param REQUEST_URI $request_uri; > > fastcgi_param SCRIPT_FILENAME $document_root/index.cgi; > > if ($arg_p = "PATTERN") > > { > > auth_basic "closed site"; > > auth_basic_user_file /path/to/user.pwd; > > ) > > fastcgi_pass unix:/var/run/fcgiwrap.socket; > > } > > В апаче это делалось выставлением переменной окруженя, которая > проверялась > > директивой > > Deny from env={ENV_VARIABLE} > > > > Возможно-ли что-то подобное в nginx, спасибо. > > Директива auth_basic начиная с версии 1.3.10 понимает переменные, > и если в результате получится специальное значение "off" - то > проверок не будет. Соответственно можно сделать как-то так: > > location / { > set $realm "off"; > > if ($arg_p = "...") { > set $realm "closed site"; > } > > auth_basic $realm; > auth_basic_user_files /path/to/file; > > ... > } > > Ну или тривиальный и работающий для произвольных директив метод - > сделать rewrite в другой location, и там написать то, что нужно: > > location / { > if ($arg_p = "...") { > rewrite (.*) /closed/$1 break; > } > > ... > } > > location /closed/ { > auth_basic "closed site"; > auth_basic_user_files /path/to/file; > > ... > } > > Следует, однако, понимать, что вообще подобные проверки > аутентификации/авторизации по параметрам, вынесенные отдельно от > кода, эти прараметры обрабатывающего, - они чреваты боком. Потому > как завтра выяснится, что ваш cgi-код понимате параметры, > разделённые ";" (а не только "&", как nginx), и соответственно > окажется, что авторизация - обходится тривиально. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- ________________ С Уважением, Максим Завьялов
_______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
