Java « как перенаправить request на URL из другого контекста?

Ситуация такая. Пользователь запрашивает URL1.

На нем в сервлете делаем проверку на права, и перенаправляем запрос на другой сервер, там находится PDF файл.

req.getRequestDispatcher(...).forward(req, res); не катит т.к этот файл находится в другом контексте, или вообще домене.

Это нужно т.к на другом сервере PDF файл будет генерироваться на лету, и храниться в кэшэ, адрес PDF документа будет состоять из уникального ключа(MD5 наверное) но никто эти адреса документов не знает.
Получается весь процесс для пользователя прозрачен, он не знает что происходит в сервлете.

Делать res.sendRedirect нельзя так как адрес сервера и пути должны быть засекречены, а если делать sendRedirect то они посылаются обратно браузеру.

Кто сталкивался с похожей проблемой?

1 ответов


Возможно следующее - запросить самостоятельно у другого сервера PDF, а потом из сервлета вернуть полученный ответ. Это достаточно легко сделать через URLConnection.
Документация:
http://http://java.sun.com/j2se/1.4.2/docs/api/java/net/URLConnection.html

Примерчики:
http://code.google.com/intl/ru/appengine/docs/java/urlfetch/usingjavanet.html#Redirects
http://www.java2s.com/Code/JavaAPI/javax.net/URLConnectiongetInputStream.htm

Надеюсь помог)))


Сделайте авторизацию в фильтре