<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.32.2">
</HEAD>
<BODY>
Ну, у меня там достаточно много внутренних редиректов, которые не хотелось бы выносить на клиентскую сторону:)<BR>
В Птн, 11/11/2011 в 22:41 +0200, Dmitrii пишет:
<BLOCKQUOTE TYPE=CITE>
<PRE>
можно сделать альтернативный вариант:
отправить ajax запрос на javascript, получить результат и сделать редирект на javascript'е
--- Исходное сообщение ---
От кого: "Serg Gulko" <<A HREF="mailto:s.gulko@gmail.com">s.gulko@gmail.com</A>>
Кому: "Kiev Perl Users Group" <<A HREF="mailto:kiev-perl-users-group@googlegroups.com">kiev-perl-users-group@googlegroups.com</A>>
Дата: 11 ноября 2011, 20:54:50
Тема: Catalyst, redirect и https
> Есть приложение на 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 тоже не
> сильно помог.
> Кто сталкивался с такой проблемой и знает как решить ее малой кровью?
</PRE>
</BLOCKQUOTE>
<BR>
</BODY>
</HTML>