powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / spring mvc. как передать headers при redirect из контроллера?
25 сообщений из 37, страница 1 из 2
spring mvc. как передать headers при redirect из контроллера?
    #37802291
aliasnash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!

Есть контроллер, который редиректит пользователя по определенному урлу:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
	@RequestMapping(value = "/goto", method = RequestMethod.GET)
	public String redirectToSite(ModelMap model, HttpServletRequest request, HttpServletResponse response)
	{
		String url = "http://www.site.ru";
		
		response.addHeader("transfer_header", "whata_is_it");
		
		return "redirect:" + url;
	}



Проблема в том, что после редиректа на сайт " http://www.site.ru", мой заголовок "transfer_header" теряется:(

Как можно реализовать передачу хедера корректно?
Спасибо!
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37802457
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliasnash,

Попробуйте добавлять заголовки в postHandle(...) интерцептора, расширяющего HandlerInterceptorAdapter.
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37802463
aliasnash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanov-void, а возможно это делать без участия интерцепторов?
мне кажется все должно быть проще...хотя до меня не доходит как:(
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37802496
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliasnash,

Попробуйте тогда использовать forvard: При редиректе будет два запроса, поэтому установленные заголовки потеряются.
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37802503
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
for w ard:
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37802511
aliasnash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanov-void,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
	@RequestMapping(value = "/goto", method = RequestMethod.GET)
	public String redirectToSite(ModelMap model, HttpServletRequest request, HttpServletResponse response)
	{
		String url = "http://www.site.ru";
		
		response.addHeader("transfer_header", "whata_is_it");
		
		return "forward:" + url;
	}



не хочет работать. может что не правильно указываю?

ошибка 404 (The requested resource () is not available.)
возвращаю на redirect, норм отображается...
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37803863
aliasnash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37803883
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
forward работает только для ресурсов в рамках того же контекста. Если это другой сайт, то только redirect. Если это какой-то кастомный хидер, то через redirect его передать не выйдет. Даже куку на другой домен скорее всего не выставить. Только get параметры. Соответсвенно site.ru должен их понимать.

В общем случае если бы можно было бы говорить браузеру клиента выставить любые заголовки для другого сайта, это было бы дырой в безопасности.
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37804043
aliasnash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
ко мне заходит пользователь, со своими хедерами, стандартными (Referer и т.д.)
мне его надо перекинуть на сторонний сайт, например http://yandex.ru и при этом передать все его заголовки, с которыми он пришел ко мне, я сам руками (в коде) никаких хедеров генерить не буду. Мне лишь надо передать все хедеры пользователя на сайт, куда я его редирекчу.
Такое не реально? Это и есть кастомные хедеры? или вы имели ввиду под кастомными, это те которые я придумываю сам?
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37804069
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliasnashко мне заходит пользователь, со своими хедерами, стандартными (Referer и т.д.)
мне его надо перекинуть на сторонний сайт, например http://yandex.ru и при этом передать все его заголовки, с которыми он пришел ко мне, я сам руками (в коде) никаких хедеров генерить не буду. Мне лишь надо передать все хедеры пользователя на сайт, куда я его редирекчу.
Такое не реально? Это и есть кастомные хедеры? или вы имели ввиду под кастомными, это те которые я придумываю сам?
Смотрите есть 3 варианта.
Redirect - это команда браузеру перейти на другой адрес. Хидеры так передать нельзя.
Forward это команда request-диспатчеру отдать некий ресурс с этого же сервера. Т.е. ни на какой другой сайт клиент не попадёт.
И третий вариант, это прокси. Надо из запроса пользователя сформировать новый, передать его на конечный сайт, получить отклик и отдать пользователю. Опять же пользователь не попадает на тот сайт напрямую. Он только получает его контент через вас.
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37804128
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать сформировать некий JavaScript, который отправит в браузере запрос с заголовками на целевой сайт, а потом, например, перегрузит страницу. Т.е. там уже по обстановке смотреть, что именно нужно. Но cross-domain JavaScript тоже штука скользкая. Заработает не везде.
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37804151
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понял, о каких хидерах вы говорите.
Смотря какая цель.

Referer заполняется браузером чисто как информация откуда пришёл клиент.
Зачем его менять?
Это важная информация. По ней, часто судят откуда клиент пришёл. Счётчики работают.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
	// IP
		String fIP = request.getHeader("HTTP_X_FORWARDED_FOR"); // IP-адрес клиента
		String _clientIP;
		// при подключении через неанонимный прокси
		if (fIP != null) {
			_clientIP = "ПРОКСИ-" + fIP;
		} else {
			_clientIP = request.getRemoteAddr();
		}
		// IP
		//////////////////////////////////////////////////////
                Referer

        	String _referer = request.getParameter("_referrer");
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37804192
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс. Второй параметр Ref это мнимый (исправленнй на JS) referrer.
Код: javascript
1.
&_referrer=" + encodeURIComponent(document.referrer));


Когда юзверь бродит внутри домена по твоим страницам document.referrer уже очищается. Мне он нужен был.
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37804375
aliasnash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Referer я просто для примера привел.
Мне эти данные не требуется изменять, мне их нужно просто перенаправить на требуемый сайт.
Т.е. все хедеры, которые присутствуют в request'е пользователя, мне нужно передать на сайт, куда я его редирекчу.
Менять, или добавлять хедер мне не требуется

Blazkowicz,
Кажется что js это единственный вариант.

спасиб
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37805433
aliasnash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczМожно попробовать сформировать некий JavaScript, который отправит в браузере запрос с заголовками на целевой сайт, а потом, например, перегрузит страницу. Т.е. там уже по обстановке смотреть, что именно нужно. Но cross-domain JavaScript тоже штука скользкая. Заработает не везде.

Blazkowicz, Вы можете помочь с таким скриптом? я просто даже пока не представляю как это сделать, или как сформировать правильно вопрос.
Что мне требуется? у меня есть сайт http://site.ru, и по запросу от пользователя, я делаю редирект этого пользователя на сайт http://site.ru, при этом все headers, с которыми пришел ко мне пользователь, нужно перенаправить также на этот сайт. Если я делаю просто "redirect:", то все headers заменяются моими, с портала, что не правильно для меня.
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37805986
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliasnash,

Ты упорно молчишь Зачем?
Имхо это Хак.
Удачи.
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37806027
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliasnashBlazkowicz, Вы можете помочь с таким скриптом?

Не думаю. Там нет однозначного решения. Надо смотреть на целевой сайт.

aliasnashя просто даже пока не представляю как это сделать, или как сформировать правильно вопрос.
Что мне требуется? у меня есть сайт http://site.ru, и по запросу от пользователя, я делаю редирект этого пользователя на сайт http://site.ru, при этом все headers, с которыми пришел ко мне пользователь, нужно перенаправить также на этот сайт. Если я делаю просто "redirect:", то все headers заменяются моими, с портала, что не правильно для меня.
Да, мы поняли. Только это всё попахивает. Вы хотите заставить перейти браузер на некую страницу, но при этом заставить, например, ту страницу думать, что клиент пришел не от вас, а откуда-то ещё?
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37806502
aliasnash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123aliasnash,

Ты упорно молчишь Зачем?
Имхо это Хак.
Удачи.

Молчу о чем? не совсем понял вопрос




BlazkowiczДа, мы поняли. Только это всё попахивает. Вы хотите заставить перейти браузер на некую страницу, но при этом заставить, например, ту страницу думать, что клиент пришел не от вас, а откуда-то ещё? .


верно, конечный сайт должен не знать, что пользователь прошелся через меня.
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37806537
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliasnashверно, конечный сайт должен не знать, что пользователь прошелся через меня.Прокси-сервер не пробовали настраивать?
Или что?
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37807208
aliasnash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovaliasnashверно, конечный сайт должен не знать, что пользователь прошелся через меня.Прокси-сервер не пробовали настраивать?
Или что?

прокси не вариант, нужно чтобы в итоге пользователь работал напрямую с конечным сайтом, а не через проксю

или всетаки это можно через проксю замутить? стоит еще nginx...
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37807223
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliasnashпрокси не вариант, нужно чтобы в итоге пользователь работал напрямую с конечным сайтом, а не через проксю
или всетаки это можно через проксю замутить? стоит еще nginx...
То что вы хотите принципиально не возможно на HTTP. Т.к. forward не вариант в вашем случае, то варианта остаётся только два, как я и описал выше.
JavaScript, который отправляет запрос на целевой сервер с нужными заголовками, а потом подменяет контент страницы.
Прокси, который полностью качает весь трафик межнду целевым сайтом и клиентом.
И там и там есть свои сложности и не всякий сервер разрешит такие хаки.
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37807365
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аффтар! Удивительно но ты неделю пишешь Что делать и ни разу Зачем делать. Кто у тебя Постановщик?
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37807370
aliasnash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczaliasnashпрокси не вариант, нужно чтобы в итоге пользователь работал напрямую с конечным сайтом, а не через проксю
или всетаки это можно через проксю замутить? стоит еще nginx...
То что вы хотите принципиально не возможно на HTTP. Т.к. forward не вариант в вашем случае, то варианта остаётся только два, как я и описал выше.
JavaScript, который отправляет запрос на целевой сервер с нужными заголовками, а потом подменяет контент страницы.
Прокси, который полностью качает весь трафик межнду целевым сайтом и клиентом.
И там и там есть свои сложности и не всякий сервер разрешит такие хаки.




1. client -> request+headers -> server script
2. server script -> response (location=myurl + headers from client) -> client
3. client (JS в фоне устанавливаю все headers) -> request (from location header) -> myurl

для пользователя это один шаг


вот так будет работать, так правильно? (возможно я плохо понимаю всю сложность)
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37807400
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliasnash1. client -> request+headers -> server script
2. server script -> response (location=myurl + headers from client) -> client
3. client (JS в фоне устанавливаю все headers) -> request (from location header) -> myurl

Шаг 2 не верный. location=myurl отправит клиента на целевой сервер без ваших хидеров.
Надо отправить запрос с хидерами. Считать HTML и попробовать обновить контент сраницы через DOM. Тогда юзер будет видеть данные целевого сервера, но с вашим адресом. А потом уже перекинуть юзера на целевой сервер полностью.
Это сработает не всегда и не везде.
...
Рейтинг: 0 / 0
spring mvc. как передать headers при redirect из контроллера?
    #37807429
aliasnash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczaliasnash1. client -> request+headers -> server script
2. server script -> response (location=myurl + headers from client) -> client
3. client (JS в фоне устанавливаю все headers) -> request (from location header) -> myurl

Шаг 2 не верный. location=myurl отправит клиента на целевой сервер без ваших хидеров.
Надо отправить запрос с хидерами. Считать HTML и попробовать обновить контент сраницы через DOM. Тогда юзер будет видеть данные целевого сервера, но с вашим адресом. А потом уже перекинуть юзера на целевой сервер полностью.
Это сработает не всегда и не везде.

а вот так??

1. client -> request+headers -> server script
2. server script -> response (temp_page.jsp?query_string=myurl + headers from client) -> client
3. client (JS в фоне устанавливаю все headers) -> request (from query_string) -> myurl

т.е. во 2 шаге, я перенаправляю на страничку temp_page.jsp, на которой JSом я копирую все хедеры нужные, и отправляю пользователя на myurl из query_string
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / spring mvc. как передать headers при redirect из контроллера?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]