Catalyst, redirect и https
Serg Gulko
s.gulko at gmail.com
Fri Nov 11 09:54:46 PST 2011
Есть приложение на Catalyst, запущено под FastCGI, в качестве front-
end-а используется nginx.
При использовании $c->response->redirect($c->uri_for("/cool_place"));
backend всегда делает редикерк по http, в то время как на nginx-е у
нас поднят SSL.
Особенно неприятно это проявляется при операциях типа Logout, когда
пользователь явно был в защищенной зоне, послал запрос типа /logout,
который имел такой вот вид:
$c->log->info('Logout');
$c->logout;
$c->response->redirect($c->uri_for("/"));
и видит чуденсую ошибку.
Сейчас я решил этот вопрос явным указанием того, что схема у нас
https:
$c->log->info('Logout');
$c->logout;
my $uri = $c->req->base();
$uri->scheme("https");
$c->req->base($uri);
$c->response->redirect($c->uri_for("/"));
Но вот что-то мне подсказывает, что такой суровый хардкод не очень
красив. По странным причинам Catalyst::Plugin::RequireSSL тоже не
сильно помог.
Кто сталкивался с такой проблемой и знает как решить ее малой кровью?
More information about the Kiev-pm
mailing list