Установка файла cookie для другого домена с 302-перенаправлением на - PullRequest
2 голосов
/ 26 января 2011

(Этот вопрос скорее проверка реальности, чем что-либо еще - я почти уверен, что это возможно, но хочу быть уверен.)

Я пишу прокси-сервер, который получает HTTP-запросы, передает их на удаленный сервер и возвращает ответ удаленного сервера.

Я столкнулся с проблемой, когда один из ответов удаленного сервера - это перенаправление 302, которое устанавливает cookie. Вот пример:

server: nginx/0.7.65
date: Wed, 26 Jan 2011 04:42:18 GMT
connection: keep-alive
set-cookie: JSESSIONID=FFFFFFFUUUUUUUUUUU; Domain=.50.16.34.61; Path=/
location: http://50.16.34.61/client/whatever.html
content-length: "0"

Когда клиент выполняет перенаправление на 50.16.34.61 (домен, отличный от прокси-сервера), я замечаю, что файлы cookie не установлены.

Я пытаюсь сделать что-то сумасшедшее с частью домена директивы set-cookie?

Редактировать

По сути, я делаю это неправильно, и согласно http://www.ietf.org/rfc/rfc2109.txt хост-запрос действительно должен быть надмножеством домена в директиве set-cookie.

/ грустный-тромбон

Ответы [ 2 ]

2 голосов
/ 26 января 2011

Файл Domain = cookie будет работать только в том случае, если заголовок Host:, запрошенный браузером, является расширенным набором используемого значения.

В вашем случае кажется, что ваш прокси-сервер притворяется другим сервером, поэтому может иметь смысл перехватить строки заголовка Location: и Set-Cookie: среди многих других вещей и заменить соответствующие биты, чтобы сохранить указывая на ваш сервер.

1 голос
/ 26 января 2011

Клиент выполняет переадресацию на 50.16.34.61, но была ли страница запрошена в этом домене? Прокси здесь не проблема - если запрошенный ресурс (сгенерировавший 302) находился в другом домене, вы не можете установить куки для другого.

Прокси, конечно, не должен мешать.

Редактировать: удерживать; на самом деле это не прокси-сервер HTTP, а прокси-сервер HTTP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...